From 6a8a0b4b144d0748a757eeb70e5e24d7ac0c69bf Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Mon, 6 Apr 2026 08:07:07 +0000 Subject: [PATCH] testdata: recapture all golden files with 19-node tailnet and netmap Recapture all golden test data from Tailscale SaaS with: - All 19 nodes online (12 routes + 7 grant v2 topology) - All routes approved via API - Trimmed netmap data per capture (Peers with AllowedIPs, PrimaryRoutes, Tags; SelfNode with RoutableIPs) - 20-30s propagation wait for correct data Topology expanded from netmap peers to include all 19 nodes that contribute to filter rule SrcIPs. Each node has routable_ips and approved_routes derived from netmap SelfNode data. New files: b11-b16 (autogroup:internet), i8-i9 (IPv6 fd00:1::/64), pa1-pa2 (partial route approval), V31-SLOW. Updates #3157 --- .../v2/testdata/acl_results/ACL-A01.hujson | 625 +- .../v2/testdata/acl_results/ACL-A02.hujson | 1386 ++- .../v2/testdata/acl_results/ACL-A03.hujson | 491 +- .../v2/testdata/acl_results/ACL-A04.hujson | 769 +- .../v2/testdata/acl_results/ACL-A05.hujson | 285 +- .../v2/testdata/acl_results/ACL-A06.hujson | 720 +- .../v2/testdata/acl_results/ACL-A07.hujson | 509 +- .../v2/testdata/acl_results/ACL-A08.hujson | 3192 +++++- .../v2/testdata/acl_results/ACL-A09.hujson | 348 +- .../v2/testdata/acl_results/ACL-A10.hujson | 306 +- .../v2/testdata/acl_results/ACL-A11.hujson | 440 +- .../v2/testdata/acl_results/ACL-A12.hujson | 488 +- .../v2/testdata/acl_results/ACL-A13.hujson | 702 +- .../v2/testdata/acl_results/ACL-A14.hujson | 752 +- .../v2/testdata/acl_results/ACL-A15.hujson | 821 +- .../v2/testdata/acl_results/ACL-A16.hujson | 353 +- .../v2/testdata/acl_results/ACL-A17.hujson | 2291 +++- .../v2/testdata/acl_results/ACL-AH01.hujson | 579 +- .../v2/testdata/acl_results/ACL-AH02.hujson | 516 +- .../v2/testdata/acl_results/ACL-AH03.hujson | 1973 +++- .../v2/testdata/acl_results/ACL-AH04.hujson | 513 +- .../v2/testdata/acl_results/ACL-AH05.hujson | 1411 ++- .../v2/testdata/acl_results/ACL-AH06.hujson | 1411 ++- .../v2/testdata/acl_results/ACL-AR01.hujson | 472 +- .../v2/testdata/acl_results/ACL-AR02.hujson | 1083 +- .../v2/testdata/acl_results/ACL-AR03.hujson | 472 +- .../v2/testdata/acl_results/ACL-AR04.hujson | 687 +- .../v2/testdata/acl_results/ACL-AR05.hujson | 571 +- .../v2/testdata/acl_results/ACL-AR06.hujson | 988 +- .../v2/testdata/acl_results/ACL-AT01.hujson | 2583 ++++- .../v2/testdata/acl_results/ACL-AT02.hujson | 2664 ++++- .../v2/testdata/acl_results/ACL-AT03.hujson | 1145 +- .../v2/testdata/acl_results/ACL-AT04.hujson | 1055 +- .../v2/testdata/acl_results/ACL-AT05.hujson | 455 +- .../v2/testdata/acl_results/ACL-AT06.hujson | 635 +- .../v2/testdata/acl_results/ACL-AU01.hujson | 384 +- .../v2/testdata/acl_results/ACL-AU02.hujson | 384 +- .../v2/testdata/acl_results/ACL-AU03.hujson | 529 +- .../v2/testdata/acl_results/ACL-AU04.hujson | 1327 ++- .../v2/testdata/acl_results/ACL-AU05.hujson | 932 +- .../v2/testdata/acl_results/ACL-AU06.hujson | 454 +- .../v2/testdata/acl_results/ACL-C01.hujson | 1193 +- .../v2/testdata/acl_results/ACL-C02.hujson | 685 +- .../v2/testdata/acl_results/ACL-C03.hujson | 692 +- .../v2/testdata/acl_results/ACL-C04.hujson | 1887 +++- .../v2/testdata/acl_results/ACL-C05.hujson | 3558 +++++- .../v2/testdata/acl_results/ACL-C06.hujson | 534 +- .../v2/testdata/acl_results/ACL-C07.hujson | 516 +- .../v2/testdata/acl_results/ACL-C08.hujson | 2664 ++++- .../v2/testdata/acl_results/ACL-C09.hujson | 2210 +++- .../v2/testdata/acl_results/ACL-C10.hujson | 2869 ++++- .../v2/testdata/acl_results/ACL-D01.hujson | 988 +- .../v2/testdata/acl_results/ACL-D02.hujson | 407 +- .../v2/testdata/acl_results/ACL-D03.hujson | 979 +- .../v2/testdata/acl_results/ACL-D04.hujson | 971 +- .../v2/testdata/acl_results/ACL-D05.hujson | 957 +- .../v2/testdata/acl_results/ACL-D06.hujson | 936 +- .../v2/testdata/acl_results/ACL-D07.hujson | 3434 +++++- .../v2/testdata/acl_results/ACL-D08.hujson | 532 +- .../v2/testdata/acl_results/ACL-E01.hujson | 971 +- .../v2/testdata/acl_results/ACL-E02.hujson | 979 +- .../v2/testdata/acl_results/ACL-E03.hujson | 971 +- .../v2/testdata/acl_results/ACL-E04.hujson | 915 +- .../v2/testdata/acl_results/ACL-E05.hujson | 936 +- .../v2/testdata/acl_results/ACL-E06.hujson | 915 +- .../v2/testdata/acl_results/ACL-E07.hujson | 384 +- .../v2/testdata/acl_results/ACL-E08.hujson | 384 +- .../v2/testdata/acl_results/ACL-E09.hujson | 384 +- .../v2/testdata/acl_results/ACL-ERR01.hujson | 6 +- .../v2/testdata/acl_results/ACL-ERR02.hujson | 6 +- .../v2/testdata/acl_results/ACL-ERR03.hujson | 6 +- .../v2/testdata/acl_results/ACL-ERR04.hujson | 6 +- .../v2/testdata/acl_results/ACL-ERR05.hujson | 6 +- .../v2/testdata/acl_results/ACL-ERR06.hujson | 8 +- .../v2/testdata/acl_results/ACL-ERR07.hujson | 6 +- .../v2/testdata/acl_results/ACL-ERR08.hujson | 8 +- .../v2/testdata/acl_results/ACL-ERR09.hujson | 8 +- .../v2/testdata/acl_results/ACL-H01.hujson | 915 +- .../v2/testdata/acl_results/ACL-H02.hujson | 971 +- .../v2/testdata/acl_results/ACL-H03.hujson | 513 +- .../v2/testdata/acl_results/ACL-H04.hujson | 1411 ++- .../v2/testdata/acl_results/ACL-H05.hujson | 1305 ++- .../v2/testdata/acl_results/ACL-H06.hujson | 389 +- .../v2/testdata/acl_results/ACL-H07.hujson | 363 +- .../v2/testdata/acl_results/ACL-H08.hujson | 629 +- .../v2/testdata/acl_results/ACL-K01.hujson | 1074 +- .../v2/testdata/acl_results/ACL-K02.hujson | 653 +- .../v2/testdata/acl_results/ACL-K03.hujson | 3434 +++++- .../v2/testdata/acl_results/ACL-K04.hujson | 1954 +++- .../v2/testdata/acl_results/ACL-K05.hujson | 779 +- .../v2/testdata/acl_results/ACL-M01.hujson | 456 +- .../v2/testdata/acl_results/ACL-M02.hujson | 418 +- .../v2/testdata/acl_results/ACL-M03.hujson | 420 +- .../v2/testdata/acl_results/ACL-M04.hujson | 421 +- .../v2/testdata/acl_results/ACL-M05.hujson | 419 +- .../v2/testdata/acl_results/ACL-M06.hujson | 942 +- .../v2/testdata/acl_results/ACL-M07.hujson | 575 +- .../v2/testdata/acl_results/ACL-M08.hujson | 491 +- .../v2/testdata/acl_results/ACL-M09.hujson | 550 +- .../v2/testdata/acl_results/ACL-M10.hujson | 420 +- .../v2/testdata/acl_results/ACL-MR01.hujson | 470 +- .../v2/testdata/acl_results/ACL-MR02.hujson | 430 +- .../v2/testdata/acl_results/ACL-MR03.hujson | 485 +- .../v2/testdata/acl_results/ACL-MR04.hujson | 428 +- .../v2/testdata/acl_results/ACL-MR05.hujson | 980 +- .../v2/testdata/acl_results/ACL-MR06.hujson | 588 +- .../v2/testdata/acl_results/ACL-MR07.hujson | 1615 ++- .../v2/testdata/acl_results/ACL-MR08.hujson | 687 +- .../v2/testdata/acl_results/ACL-MR09.hujson | 564 +- .../v2/testdata/acl_results/ACL-MR10.hujson | 715 +- .../v2/testdata/acl_results/ACL-MR11.hujson | 625 +- .../v2/testdata/acl_results/ACL-MR12.hujson | 398 +- .../v2/testdata/acl_results/ACL-MR13.hujson | 2887 ++++- .../v2/testdata/acl_results/ACL-MR14.hujson | 4228 ++++++- .../v2/testdata/acl_results/ACL-MR15.hujson | 3294 +++++- .../v2/testdata/acl_results/ACL-MR16.hujson | 3152 +++++- .../v2/testdata/acl_results/ACL-MR17.hujson | 1023 +- .../v2/testdata/acl_results/ACL-MR18.hujson | 1941 +++- .../v2/testdata/acl_results/ACL-MR19.hujson | 3540 +++++- .../v2/testdata/acl_results/ACL-MR20.hujson | 523 +- .../v2/testdata/acl_results/ACL-MR21.hujson | 759 +- .../v2/testdata/acl_results/ACL-MR22.hujson | 759 +- .../v2/testdata/acl_results/ACL-MR23.hujson | 2337 +++- .../v2/testdata/acl_results/ACL-MU01.hujson | 481 +- .../v2/testdata/acl_results/ACL-MU02.hujson | 421 +- .../v2/testdata/acl_results/ACL-MU03.hujson | 518 +- .../v2/testdata/acl_results/ACL-MU04.hujson | 757 +- .../v2/testdata/acl_results/ACL-MU05.hujson | 936 +- .../v2/testdata/acl_results/ACL-MU06.hujson | 928 +- .../v2/testdata/acl_results/ACL-MU07.hujson | 1701 ++- .../v2/testdata/acl_results/ACL-MU08.hujson | 1720 ++- .../v2/testdata/acl_results/ACL-O01.hujson | 423 +- .../v2/testdata/acl_results/ACL-O02.hujson | 423 +- .../v2/testdata/acl_results/ACL-O03.hujson | 468 +- .../v2/testdata/acl_results/ACL-O04.hujson | 468 +- .../v2/testdata/acl_results/ACL-P01.hujson | 936 +- .../v2/testdata/acl_results/ACL-P02.hujson | 936 +- .../v2/testdata/acl_results/ACL-P03.hujson | 1020 +- .../v2/testdata/acl_results/ACL-P04.hujson | 947 +- .../v2/testdata/acl_results/ACL-P05.hujson | 947 +- .../v2/testdata/acl_results/ACL-P06.hujson | 947 +- .../v2/testdata/acl_results/ACL-PF01.hujson | 386 +- .../v2/testdata/acl_results/ACL-PF02.hujson | 386 +- .../v2/testdata/acl_results/ACL-PF03.hujson | 470 +- .../v2/testdata/acl_results/ACL-PF04.hujson | 386 +- .../v2/testdata/acl_results/ACL-PF05.hujson | 386 +- .../v2/testdata/acl_results/ACL-R01.hujson | 485 +- .../v2/testdata/acl_results/ACL-R02.hujson | 470 +- .../v2/testdata/acl_results/ACL-R03.hujson | 430 +- .../v2/testdata/acl_results/ACL-R04.hujson | 483 +- .../v2/testdata/acl_results/ACL-R05.hujson | 3294 +++++- .../v2/testdata/acl_results/ACL-R06.hujson | 580 +- .../v2/testdata/acl_results/ACL-R07.hujson | 756 +- .../v2/testdata/acl_results/ACL-R08.hujson | 583 +- .../v2/testdata/acl_results/ACL-R09.hujson | 657 +- .../v2/testdata/acl_results/ACL-R10.hujson | 3395 +++++- .../v2/testdata/acl_results/ACL-RS01.hujson | 454 +- .../v2/testdata/acl_results/ACL-RS02.hujson | 386 +- .../v2/testdata/acl_results/ACL-RS03.hujson | 386 +- .../v2/testdata/acl_results/ACL-RS04.hujson | 1719 ++- .../v2/testdata/acl_results/ACL-RS05.hujson | 428 +- .../v2/testdata/acl_results/ACL-RS06.hujson | 569 +- .../v2/testdata/acl_results/ACL-RS07.hujson | 512 +- .../v2/testdata/acl_results/ACL-S01.hujson | 488 +- .../v2/testdata/acl_results/ACL-S02.hujson | 354 +- .../v2/testdata/acl_results/ACL-S03.hujson | 421 +- .../v2/testdata/acl_results/ACL-S04.hujson | 6 +- .../v2/testdata/acl_results/ACL-S05.hujson | 6 +- .../v2/testdata/acl_results/ACL-S06.hujson | 6 +- .../v2/testdata/acl_results/ACL-S07.hujson | 1139 +- .../v2/testdata/acl_results/ACL-S08.hujson | 1918 +++- .../v2/testdata/acl_results/ACL-S09.hujson | 614 +- .../v2/testdata/acl_results/ACL-S10.hujson | 616 +- .../v2/testdata/acl_results/ACL-SF01.hujson | 488 +- .../v2/testdata/acl_results/ACL-SF02.hujson | 421 +- .../v2/testdata/acl_results/ACL-SF03.hujson | 6 +- .../v2/testdata/acl_results/ACL-SF04.hujson | 6 +- .../v2/testdata/acl_results/ACL-SF05.hujson | 6 +- .../v2/testdata/acl_results/ACL-SF06.hujson | 1121 +- .../v2/testdata/acl_results/ACL-SF07.hujson | 1108 +- .../v2/testdata/acl_results/ACL-SF08.hujson | 6 +- .../v2/testdata/acl_results/ACL-SF09.hujson | 616 +- .../v2/testdata/acl_results/ACL-SF10.hujson | 614 +- .../v2/testdata/acl_results/ACL-SF11.hujson | 1108 +- .../v2/testdata/acl_results/ACL-SF12.hujson | 354 +- .../v2/testdata/acl_results/ACL-SF13.hujson | 354 +- .../v2/testdata/acl_results/ACL-T01.hujson | 386 +- .../v2/testdata/acl_results/ACL-T02.hujson | 979 +- .../v2/testdata/acl_results/ACL-T03.hujson | 423 +- .../v2/testdata/acl_results/ACL-T04.hujson | 936 +- .../v2/testdata/acl_results/ACL-T05.hujson | 713 +- .../v2/testdata/acl_results/ACL-T06.hujson | 884 +- .../v2/testdata/acl_results/ACL-T07.hujson | 386 +- .../v2/testdata/acl_results/ACL-T08.hujson | 717 +- .../v2/testdata/acl_results/ACL-T09.hujson | 365 +- .../v2/testdata/acl_results/ACL-T10.hujson | 383 +- .../v2/testdata/acl_results/ACL-U01.hujson | 967 +- .../v2/testdata/acl_results/ACL-U02.hujson | 936 +- .../v2/testdata/acl_results/ACL-U03.hujson | 967 +- .../v2/testdata/acl_results/ACL-U04.hujson | 936 +- .../v2/testdata/acl_results/ACL-U05.hujson | 419 +- .../v2/testdata/acl_results/ACL-U06.hujson | 384 +- .../v2/testdata/acl_results/ACL-U07.hujson | 967 +- .../v2/testdata/acl_results/ACL-U08.hujson | 464 +- .../v2/testdata/acl_results/ACL-U09.hujson | 384 +- .../v2/testdata/acl_results/ACL-U10.hujson | 285 +- .../v2/testdata/acl_results/ACL-U11.hujson | 421 +- .../v2/testdata/acl_results/ACL-U12.hujson | 421 +- .../v2/testdata/acl_results/ACL-W01.hujson | 3066 ++++- .../v2/testdata/acl_results/ACL-W02.hujson | 959 +- .../v2/testdata/acl_results/ACL-W03.hujson | 405 +- .../v2/testdata/acl_results/ACL-W04.hujson | 915 +- .../v2/testdata/acl_results/ACL-W05.hujson | 601 +- .../v2/testdata/acl_results/ACL-W06.hujson | 3066 ++++- .../v2/testdata/acl_results/ACL-W07.hujson | 3066 ++++- .../v2/testdata/grant_results/GRANT-A1.hujson | 6851 +++++++++++- .../v2/testdata/grant_results/GRANT-A2.hujson | 25 +- .../v2/testdata/grant_results/GRANT-A3.hujson | 6853 +++++++++++- .../v2/testdata/grant_results/GRANT-A4.hujson | 7532 ++++++++++++- .../v2/testdata/grant_results/GRANT-A5.hujson | 25 +- .../v2/testdata/grant_results/GRANT-A6.hujson | 957 +- .../v2/testdata/grant_results/GRANT-B1.hujson | 2054 +++- .../v2/testdata/grant_results/GRANT-B2.hujson | 2131 +++- .../v2/testdata/grant_results/GRANT-B3.hujson | 7942 ++++++++++++- .../v2/testdata/grant_results/GRANT-B4.hujson | 8434 +++++++++++++- .../v2/testdata/grant_results/GRANT-B5.hujson | 7942 ++++++++++++- .../v2/testdata/grant_results/GRANT-C1.hujson | 6819 ++++++++++- .../v2/testdata/grant_results/GRANT-C2.hujson | 6981 +++++++++++- .../v2/testdata/grant_results/GRANT-C3.hujson | 7224 +++++++++++- .../v2/testdata/grant_results/GRANT-C4.hujson | 7288 +++++++++++- .../v2/testdata/grant_results/GRANT-C5.hujson | 7305 +++++++++++- .../v2/testdata/grant_results/GRANT-C6.hujson | 7305 +++++++++++- .../v2/testdata/grant_results/GRANT-D1.hujson | 1076 +- .../v2/testdata/grant_results/GRANT-D2.hujson | 1583 ++- .../v2/testdata/grant_results/GRANT-D3.hujson | 802 +- .../v2/testdata/grant_results/GRANT-D4.hujson | 802 +- .../v2/testdata/grant_results/GRANT-D5.hujson | 806 +- .../v2/testdata/grant_results/GRANT-D6.hujson | 800 +- .../v2/testdata/grant_results/GRANT-D7.hujson | 1218 +- .../v2/testdata/grant_results/GRANT-E1.hujson | 1980 +++- .../v2/testdata/grant_results/GRANT-E2.hujson | 3068 ++++- .../v2/testdata/grant_results/GRANT-E3.hujson | 30 +- .../v2/testdata/grant_results/GRANT-E4.hujson | 3974 ++++++- .../v2/testdata/grant_results/GRANT-E5.hujson | 6036 +++++++++- .../v2/testdata/grant_results/GRANT-E6.hujson | 1956 +++- .../v2/testdata/grant_results/GRANT-E7.hujson | 1956 +++- .../v2/testdata/grant_results/GRANT-E8.hujson | 1972 +++- .../v2/testdata/grant_results/GRANT-F1.hujson | 2336 +++- .../v2/testdata/grant_results/GRANT-F2.hujson | 1242 +- .../v2/testdata/grant_results/GRANT-F3.hujson | 2347 +++- .../v2/testdata/grant_results/GRANT-F4.hujson | 9096 ++++++++++++++- .../v2/testdata/grant_results/GRANT-G1.hujson | 2099 +++- .../v2/testdata/grant_results/GRANT-G2.hujson | 2129 +++- .../v2/testdata/grant_results/GRANT-G3.hujson | 2056 +++- .../v2/testdata/grant_results/GRANT-G4.hujson | 2252 +++- .../v2/testdata/grant_results/GRANT-G5.hujson | 6904 +++++++++++- .../v2/testdata/grant_results/GRANT-G6.hujson | 6946 +++++++++++- .../v2/testdata/grant_results/GRANT-H1.hujson | 21 +- .../testdata/grant_results/GRANT-H10.hujson | 25 +- .../v2/testdata/grant_results/GRANT-H2.hujson | 6657 ++++++++++- .../v2/testdata/grant_results/GRANT-H3.hujson | 21 +- .../v2/testdata/grant_results/GRANT-H4.hujson | 615 +- .../v2/testdata/grant_results/GRANT-H5.hujson | 615 +- .../v2/testdata/grant_results/GRANT-H6.hujson | 977 +- .../v2/testdata/grant_results/GRANT-H7.hujson | 25 +- .../v2/testdata/grant_results/GRANT-H8.hujson | 20 +- .../v2/testdata/grant_results/GRANT-H9.hujson | 25 +- .../v2/testdata/grant_results/GRANT-I1.hujson | 2194 +++- .../v2/testdata/grant_results/GRANT-I2.hujson | 2194 +++- .../v2/testdata/grant_results/GRANT-I3.hujson | 2290 +++- .../v2/testdata/grant_results/GRANT-I4.hujson | 26 +- .../v2/testdata/grant_results/GRANT-J1.hujson | 2084 +++- .../v2/testdata/grant_results/GRANT-J2.hujson | 2084 +++- .../v2/testdata/grant_results/GRANT-J3.hujson | 2081 +++- .../v2/testdata/grant_results/GRANT-J4.hujson | 2353 +++- .../v2/testdata/grant_results/GRANT-J5.hujson | 2084 +++- .../v2/testdata/grant_results/GRANT-J6.hujson | 2081 +++- .../v2/testdata/grant_results/GRANT-J7.hujson | 23 +- .../v2/testdata/grant_results/GRANT-K1.hujson | 6661 ++++++++++- .../testdata/grant_results/GRANT-K10.hujson | 25 +- .../testdata/grant_results/GRANT-K11.hujson | 9959 ++++++++++++++++- .../testdata/grant_results/GRANT-K12.hujson | 2125 +++- .../testdata/grant_results/GRANT-K13.hujson | 2201 +++- .../testdata/grant_results/GRANT-K14.hujson | 894 +- .../testdata/grant_results/GRANT-K15.hujson | 2049 +++- .../testdata/grant_results/GRANT-K16.hujson | 6976 +++++++++++- .../testdata/grant_results/GRANT-K17.hujson | 6976 +++++++++++- .../testdata/grant_results/GRANT-K18.hujson | 7821 ++++++++++++- .../testdata/grant_results/GRANT-K19.hujson | 7871 ++++++++++++- .../v2/testdata/grant_results/GRANT-K2.hujson | 6673 ++++++++++- .../testdata/grant_results/GRANT-K20.hujson | 1034 +- .../testdata/grant_results/GRANT-K21.hujson | 3156 +++++- .../testdata/grant_results/GRANT-K22.hujson | 2081 +++- .../testdata/grant_results/GRANT-K23.hujson | 23 +- .../testdata/grant_results/GRANT-K24.hujson | 6819 ++++++++++- .../testdata/grant_results/GRANT-K25.hujson | 6819 ++++++++++- .../testdata/grant_results/GRANT-K26.hujson | 4790 +++++++- .../testdata/grant_results/GRANT-K27.hujson | 770 +- .../testdata/grant_results/GRANT-K28.hujson | 1333 ++- .../testdata/grant_results/GRANT-K29.hujson | 600 +- .../v2/testdata/grant_results/GRANT-K3.hujson | 6788 ++++++++++- .../testdata/grant_results/GRANT-K30.hujson | 27 +- .../v2/testdata/grant_results/GRANT-K4.hujson | 2284 +++- .../v2/testdata/grant_results/GRANT-K5.hujson | 2975 ++++- .../v2/testdata/grant_results/GRANT-K6.hujson | 2013 +++- .../v2/testdata/grant_results/GRANT-K7.hujson | 23 +- .../v2/testdata/grant_results/GRANT-K8.hujson | 23 +- .../v2/testdata/grant_results/GRANT-K9.hujson | 25 +- .../testdata/grant_results/GRANT-P01_1.hujson | 6673 ++++++++++- .../testdata/grant_results/GRANT-P01_2.hujson | 2234 +++- .../testdata/grant_results/GRANT-P01_3.hujson | 975 +- .../testdata/grant_results/GRANT-P01_4.hujson | 2046 +++- .../testdata/grant_results/GRANT-P01_5.hujson | 974 +- .../testdata/grant_results/GRANT-P02_1.hujson | 2250 +++- .../testdata/grant_results/GRANT-P02_2.hujson | 2069 +++- .../testdata/grant_results/GRANT-P02_3.hujson | 2250 +++- .../testdata/grant_results/GRANT-P02_4.hujson | 2069 +++- .../grant_results/GRANT-P02_5_CORRECT.hujson | 1123 +- .../grant_results/GRANT-P02_5_NAIVE.hujson | 1251 ++- .../testdata/grant_results/GRANT-P03_1.hujson | 2274 +++- .../testdata/grant_results/GRANT-P03_2.hujson | 2081 +++- .../testdata/grant_results/GRANT-P03_3.hujson | 896 +- .../testdata/grant_results/GRANT-P03_4.hujson | 1040 +- .../testdata/grant_results/GRANT-P04_1.hujson | 4132 ++++++- .../testdata/grant_results/GRANT-P04_2.hujson | 6598 ++++++++++- .../testdata/grant_results/GRANT-P04_3.hujson | 23 +- .../testdata/grant_results/GRANT-P04_4.hujson | 2937 ++++- .../testdata/grant_results/GRANT-P05_1.hujson | 2046 +++- .../testdata/grant_results/GRANT-P05_2.hujson | 2258 +++- .../testdata/grant_results/GRANT-P05_3.hujson | 2758 ++++- .../testdata/grant_results/GRANT-P06_1.hujson | 2084 +++- .../testdata/grant_results/GRANT-P06_2.hujson | 2084 +++- .../testdata/grant_results/GRANT-P06_3.hujson | 2081 +++- .../testdata/grant_results/GRANT-P06_4.hujson | 2081 +++- .../testdata/grant_results/GRANT-P06_5.hujson | 2081 +++- .../testdata/grant_results/GRANT-P06_6.hujson | 2223 +++- .../testdata/grant_results/GRANT-P06_7.hujson | 2081 +++- .../testdata/grant_results/GRANT-P08_1.hujson | 1051 +- .../testdata/grant_results/GRANT-P08_2.hujson | 2378 +++- .../testdata/grant_results/GRANT-P08_3.hujson | 615 +- .../testdata/grant_results/GRANT-P08_4.hujson | 1063 +- .../testdata/grant_results/GRANT-P08_5.hujson | 1558 ++- .../testdata/grant_results/GRANT-P08_6.hujson | 2221 +++- .../testdata/grant_results/GRANT-P08_7.hujson | 6973 +++++++++++- .../testdata/grant_results/GRANT-P08_8.hujson | 2538 ++++- .../grant_results/GRANT-P09_10A.hujson | 1425 ++- .../grant_results/GRANT-P09_10B.hujson | 7257 +++++++++++- .../grant_results/GRANT-P09_10C.hujson | 2380 +++- .../grant_results/GRANT-P09_10D.hujson | 1874 +++- .../grant_results/GRANT-P09_11A.hujson | 1456 ++- .../grant_results/GRANT-P09_11B.hujson | 898 +- .../grant_results/GRANT-P09_11C_NAIVE.hujson | 2443 +++- .../grant_results/GRANT-P09_11D.hujson | 3974 ++++++- .../grant_results/GRANT-P09_12A.hujson | 1165 +- .../grant_results/GRANT-P09_12B.hujson | 1311 ++- .../grant_results/GRANT-P09_13A.hujson | 23 +- .../grant_results/GRANT-P09_13B.hujson | 23 +- .../grant_results/GRANT-P09_13C.hujson | 25 +- .../grant_results/GRANT-P09_13D.hujson | 23 +- .../grant_results/GRANT-P09_13E.hujson | 1002 +- .../grant_results/GRANT-P09_13F.hujson | 774 +- .../grant_results/GRANT-P09_13G.hujson | 774 +- .../GRANT-P09_13H_CORRECT.hujson | 37 +- .../grant_results/GRANT-P09_13H_NAIVE.hujson | 25 +- .../grant_results/GRANT-P09_14A.hujson | 980 +- .../grant_results/GRANT-P09_14B.hujson | 1169 +- .../grant_results/GRANT-P09_14C.hujson | 6973 +++++++++++- .../grant_results/GRANT-P09_14D.hujson | 1558 ++- .../grant_results/GRANT-P09_14E.hujson | 1570 ++- .../grant_results/GRANT-P09_14F.hujson | 7519 ++++++++++++- .../grant_results/GRANT-P09_14G.hujson | 1300 ++- .../grant_results/GRANT-P09_14H.hujson | 2502 ++++- .../grant_results/GRANT-P09_14I.hujson | 6840 ++++++++++- .../grant_results/GRANT-P09_1A.hujson | 1314 ++- .../grant_results/GRANT-P09_1B.hujson | 2169 +++- .../grant_results/GRANT-P09_1C.hujson | 1036 +- .../grant_results/GRANT-P09_1D.hujson | 1036 +- .../grant_results/GRANT-P09_1E.hujson | 1031 +- .../grant_results/GRANT-P09_2A_CORRECT.hujson | 1123 +- .../grant_results/GRANT-P09_2A_NAIVE.hujson | 1251 ++- .../grant_results/GRANT-P09_2B_CORRECT.hujson | 945 +- .../grant_results/GRANT-P09_2B_NAIVE.hujson | 1038 +- .../grant_results/GRANT-P09_2C.hujson | 1111 +- .../grant_results/GRANT-P09_3A.hujson | 889 +- .../grant_results/GRANT-P09_3B.hujson | 1172 +- .../grant_results/GRANT-P09_3C.hujson | 932 +- .../grant_results/GRANT-P09_4A.hujson | 1170 +- .../grant_results/GRANT-P09_4B.hujson | 1876 +++- .../grant_results/GRANT-P09_4C.hujson | 857 +- .../grant_results/GRANT-P09_4D.hujson | 899 +- .../grant_results/GRANT-P09_4E.hujson | 1002 +- .../grant_results/GRANT-P09_4F.hujson | 887 +- .../grant_results/GRANT-P09_4G.hujson | 861 +- .../grant_results/GRANT-P09_5A.hujson | 1040 +- .../grant_results/GRANT-P09_5B.hujson | 1040 +- .../grant_results/GRANT-P09_5C_NAIVE.hujson | 1251 ++- .../grant_results/GRANT-P09_6A.hujson | 3171 +++++- .../grant_results/GRANT-P09_6B.hujson | 615 +- .../grant_results/GRANT-P09_6C.hujson | 1021 +- .../grant_results/GRANT-P09_6D.hujson | 979 +- .../grant_results/GRANT-P09_7A.hujson | 2301 +++- .../grant_results/GRANT-P09_7B_NAIVE.hujson | 3831 ++++++- .../grant_results/GRANT-P09_7C.hujson | 7186 +++++++++++- .../grant_results/GRANT-P09_7D_NAIVE.hujson | 7736 ++++++++++++- .../grant_results/GRANT-P09_8A.hujson | 1174 +- .../grant_results/GRANT-P09_8B.hujson | 890 +- .../grant_results/GRANT-P09_8C.hujson | 968 +- .../grant_results/GRANT-P09_9A.hujson | 5243 ++++++++- .../grant_results/GRANT-P09_9B.hujson | 5283 ++++++++- .../grant_results/GRANT-P09_9C.hujson | 7178 +++++++++++- .../testdata/grant_results/GRANT-P10_1.hujson | 6673 ++++++++++- .../testdata/grant_results/GRANT-P10_2.hujson | 1001 +- .../testdata/grant_results/GRANT-P10_3.hujson | 2286 +++- .../testdata/grant_results/GRANT-P10_4.hujson | 1263 ++- .../testdata/grant_results/GRANT-P11_1.hujson | 6673 ++++++++++- .../testdata/grant_results/GRANT-P11_2.hujson | 822 +- .../testdata/grant_results/GRANT-P11_3.hujson | 1781 ++- .../testdata/grant_results/GRANT-P13_1.hujson | 1263 ++- .../testdata/grant_results/GRANT-P13_2.hujson | 2286 +++- .../testdata/grant_results/GRANT-P13_3.hujson | 2358 +++- .../testdata/grant_results/GRANT-P13_4.hujson | 1457 ++- .../testdata/grant_results/GRANT-P15_1.hujson | 1263 ++- .../testdata/grant_results/GRANT-P15_2.hujson | 754 +- .../testdata/grant_results/GRANT-P15_3.hujson | 1263 ++- .../testdata/grant_results/GRANT-P15_4.hujson | 1368 ++- .../testdata/grant_results/GRANT-P15_5.hujson | 754 +- .../testdata/grant_results/GRANT-P15_6.hujson | 1160 +- .../testdata/grant_results/GRANT-V01.hujson | 27 +- .../testdata/grant_results/GRANT-V02.hujson | 1265 ++- .../testdata/grant_results/GRANT-V03.hujson | 1261 ++- .../testdata/grant_results/GRANT-V04.hujson | 25 +- .../testdata/grant_results/GRANT-V05.hujson | 25 +- .../testdata/grant_results/GRANT-V06.hujson | 1990 +++- .../testdata/grant_results/GRANT-V07.hujson | 431 +- .../testdata/grant_results/GRANT-V08.hujson | 24 +- .../testdata/grant_results/GRANT-V09.hujson | 1308 ++- .../testdata/grant_results/GRANT-V10.hujson | 1304 ++- .../testdata/grant_results/GRANT-V11.hujson | 568 +- .../testdata/grant_results/GRANT-V12.hujson | 786 +- .../testdata/grant_results/GRANT-V13.hujson | 681 +- .../testdata/grant_results/GRANT-V14.hujson | 2929 ++++- .../testdata/grant_results/GRANT-V15.hujson | 6961 +++++++++++- .../testdata/grant_results/GRANT-V16.hujson | 3839 ++++++- .../testdata/grant_results/GRANT-V17.hujson | 1236 +- .../testdata/grant_results/GRANT-V18.hujson | 28 +- .../testdata/grant_results/GRANT-V19.hujson | 909 +- .../testdata/grant_results/GRANT-V20.hujson | 828 +- .../testdata/grant_results/GRANT-V21.hujson | 1236 +- .../testdata/grant_results/GRANT-V22.hujson | 30 +- .../testdata/grant_results/GRANT-V23.hujson | 1248 ++- .../testdata/grant_results/GRANT-V24.hujson | 25 +- .../testdata/grant_results/GRANT-V25.hujson | 540 +- .../testdata/grant_results/GRANT-V26.hujson | 2281 +++- .../testdata/grant_results/GRANT-V27.hujson | 3533 +++++- .../testdata/grant_results/GRANT-V28.hujson | 2910 ++++- .../testdata/grant_results/GRANT-V29.hujson | 2011 +++- .../testdata/grant_results/GRANT-V30.hujson | 3265 +++++- .../grant_results/GRANT-V31-SLOW.hujson | 2463 ++++ .../testdata/grant_results/GRANT-V31.hujson | 4402 +++++++- .../testdata/grant_results/GRANT-V32.hujson | 3824 ++++++- .../testdata/grant_results/GRANT-V33.hujson | 3148 +++++- .../testdata/grant_results/GRANT-V34.hujson | 6698 ++++++++++- .../testdata/grant_results/GRANT-V35.hujson | 1748 ++- .../testdata/grant_results/GRANT-V36.hujson | 6305 ++++++++++- ...dcard_acl_includes_routes_in_srcips.hujson | 4332 ++++++- ...ES-a2_tag_based_acl_excludes_routes.hujson | 840 +- ...a3_explicit_subnet_filter_to_router.hujson | 1677 ++- ...UTES-a3b_autogroup_member_to_subnet.hujson | 718 +- ...UTES-a4_multiple_routes_same_router.hujson | 1018 +- .../ROUTES-a5_host_alias_to_subnet.hujson | 2037 +++- ...10_exit_routes_not_in_primaryroutes.hujson | 4332 ++++++- .../ROUTES-b11_autogroup_internet_only.hujson | 2380 ++++ ...onnectivity_plus_autogroup_internet.hujson | 2559 +++++ ...b13_connectivity_plus_explicit_exit.hujson | 4967 ++++++++ ...TES-b14_all_three_internet_patterns.hujson | 5173 +++++++++ ...5_restricted_src_autogroup_internet.hujson | 1124 ++ ...autogroup_internet_no_exit_approval.hujson | 2553 +++++ ...ROUTES-b1_exit_routes_not_in_srcips.hujson | 4332 ++++++- ...ES-b2_tag_exit_excludes_exit_routes.hujson | 630 +- ...UTES-b3_exit_node_advertises_routes.hujson | 4332 ++++++- ...4_multi_router_has_both_route_types.hujson | 4332 ++++++- .../ROUTES-b5_exit_with_wildcard_dst.hujson | 4332 ++++++- .../ROUTES-b6_exit_node_option_field.hujson | 1794 ++- .../ROUTES-b7_multiple_exit_nodes.hujson | 1794 ++- ...ES-b8_autogroup_internet_no_filters.hujson | 985 +- ...ROUTES-b9_exit_routes_in_allowedips.hujson | 4332 ++++++- ...OUTES-d10_auto_approval_retroactive.hujson | 1677 ++- ...UTES-d11_overlapping_auto_approvers.hujson | 2037 +++- ...ROUTES-d1_basic_route_auto_approval.hujson | 1677 ++- .../ROUTES-d2_nested_prefix_approval.hujson | 1677 ++- .../ROUTES-d3_exact_prefix_approval.hujson | 1677 ++- .../ROUTES-d4_prefix_not_covered.hujson | 1490 ++- .../ROUTES-d5_wrong_tag_not_approved.hujson | 723 +- .../ROUTES-d6_exit_node_auto_approval.hujson | 4332 ++++++- ...TES-d7_exit_auto_approval_wrong_tag.hujson | 1794 ++- ...ES-d8_auto_approval_acl_interaction.hujson | 718 +- ...auto_approval_triggers_on_advertise.hujson | 1677 ++- ...OUTES-e1_ha_two_routers_same_subnet.hujson | 1490 ++- .../ROUTES-e2_ha_primary_in_allowedips.hujson | 1490 ++- ...ha_secondary_no_route_in_allowedips.hujson | 1490 ++- ...S-e4_ha_both_get_filters_host_alias.hujson | 1490 ++- ...UTES-e5_first_advertiser_is_primary.hujson | 1490 ++- ...UTES-f10_subnet_to_subnet_issue3157.hujson | 468 +- ...-f11_subnet_to_subnet_bidirectional.hujson | 712 +- ...S-f12_subnet_to_subnet_host_aliases.hujson | 729 +- ...OUTES-f13_subnet_to_subnet_disjoint.hujson | 552 +- ...et_to_subnet_overlapping_one_router.hujson | 627 +- ...-f15_subnet_to_subnet_cross_routers.hujson | 587 +- ...f1_filter_on_destination_not_source.hujson | 718 +- .../ROUTES-f2_subnet_as_acl_source.hujson | 864 +- ...ROUTES-f3_wildcard_src_specific_dst.hujson | 1677 ++- ...ROUTES-f4_specific_src_wildcard_dst.hujson | 2204 +++- ...UTES-f5_bidirectional_subnet_access.hujson | 982 +- .../ROUTES-f6_filter_srcips_expansion.hujson | 718 +- ...S-f7_filter_dstports_shows_acl_cidr.hujson | 1677 ++- .../ROUTES-f8_route_enabled_acl_denies.hujson | 344 +- ...ROUTES-f9_route_disabled_acl_allows.hujson | 1044 +- .../ROUTES-g1_port_restriction_subnet.hujson | 718 +- .../ROUTES-g2_port_range_subnet.hujson | 1677 ++- .../ROUTES-g3_multiple_ports_subnet.hujson | 1761 ++- .../ROUTES-g4_protocol_icmp_subnet.hujson | 1697 ++- .../ROUTES-g5_protocol_tcp_only.hujson | 1697 ++- .../ROUTES-g6_protocol_udp_only.hujson | 1697 ++- .../ROUTES-g7_all_ports_wildcard.hujson | 718 +- .../ROUTES-g8_default_ipproto.hujson | 1677 ++- .../ROUTES-h10_very_small_prefix.hujson | 1677 ++- .../ROUTES-h11_ipv6_small_prefix.hujson | 440 +- .../ROUTES-h1_wildcard_srcips_format.hujson | 2192 +++- .../ROUTES-h2_wildcard_dstports_format.hujson | 1943 +++- .../ROUTES-h3_cgnat_range_expansion.hujson | 2192 +++- .../ROUTES-h4_ipv6_range_in_srcips.hujson | 4332 ++++++- .../ROUTES-h5_subnet_overlaps_cgnat.hujson | 440 +- ...-h6_loopback_routes_not_distributed.hujson | 2008 +++- .../ROUTES-h7_two_nodes_same_subnet.hujson | 1490 ++- .../ROUTES-h8_cgnat_overlap_blocked.hujson | 440 +- .../ROUTES-h9_large_prefix_works.hujson | 854 +- .../ROUTES-i1_ipv6_subnet_route.hujson | 4332 ++++++- .../ROUTES-i2_ipv6_exit_route.hujson | 4332 ++++++- .../ROUTES-i3_ipv6_in_wildcard_srcips.hujson | 2192 +++- .../ROUTES-i4_ipv6_specific_acl.hujson | 1065 +- .../ROUTES-i5_ipv6_parent_child_routes.hujson | 424 +- .../ROUTES-i6_dual_stack_node.hujson | 1751 ++- .../ROUTES-i7_ipv6_exit_coverage.hujson | 2008 +++- ...OUTES-i8_ipv6_subnet_route_wildcard.hujson | 4791 ++++++++ .../ROUTES-i9_ipv6_subnet_targeted_acl.hujson | 1272 +++ ...ES-o10_acl_dest_covered_by_multiple.hujson | 1677 ++- .../ROUTES-o11_acl_dest_not_covered.hujson | 440 +- .../ROUTES-o12_filter_dest_is_acl_cidr.hujson | 1677 ++- ...ES-o1_overlapping_routes_not_merged.hujson | 4332 ++++++- ...OUTES-o2_ha_routers_both_get_filter.hujson | 1490 ++- ...TES-o3_parent_child_different_nodes.hujson | 1677 ++- .../ROUTES-o4_three_way_hierarchy.hujson | 1677 ++- ...S-o5_sibling_routes_with_parent_acl.hujson | 2037 +++- ...S-o6_exit_route_expands_filter_dist.hujson | 2008 +++- .../ROUTES-o7_specific_ip_targeting.hujson | 1677 ++- ...TES-o8_same_node_overlapping_routes.hujson | 1677 ++- ...OUTES-o9_different_nodes_same_route.hujson | 646 +- .../ROUTES-pa1_partial_route_approval.hujson | 4785 ++++++++ ...pa2_partial_approval_restricted_acl.hujson | 1920 ++++ ...ROUTES-r1_exit_covers_external_dest.hujson | 2008 +++- ...S-r2_parent_route_covers_child_dest.hujson | 1677 ++- ...OUTES-r3_sibling_routes_no_coverage.hujson | 1044 +- .../ROUTES-r4_exact_match_route.hujson | 1677 ++- ...OUTES-r5_route_coverage_check_logic.hujson | 1677 ++- .../ROUTES-r6_ipv6_route_coverage.hujson | 440 +- .../ROUTES-r7_exit_ipv6_coverage.hujson | 2008 +++- .../ROUTES-r8_mixed_ipv4_ipv6_coverage.hujson | 4426 +++++++- ...S-t1_tags_resolve_to_ips_not_routes.hujson | 840 +- .../ROUTES-t2_tag_to_tag_with_exit.hujson | 630 +- ...UTES-t3_tag_src_includes_all_tagged.hujson | 2204 +++- ...UTES-t4_tag_dst_includes_all_tagged.hujson | 1558 ++- .../ROUTES-t5_multi_tag_node_in_both.hujson | 797 +- 572 files changed, 993112 insertions(+), 12348 deletions(-) create mode 100644 hscontrol/policy/v2/testdata/grant_results/GRANT-V31-SLOW.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-b11_autogroup_internet_only.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-b12_connectivity_plus_autogroup_internet.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-b13_connectivity_plus_explicit_exit.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-b14_all_three_internet_patterns.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-b15_restricted_src_autogroup_internet.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-b16_autogroup_internet_no_exit_approval.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-i8_ipv6_subnet_route_wildcard.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-i9_ipv6_subnet_targeted_acl.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-pa1_partial_route_approval.hujson create mode 100644 hscontrol/policy/v2/testdata/routes_results/ROUTES-pa2_partial_approval_restricted_acl.hujson diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A01.hujson index 11ba6163..29f67b78 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-A01", + "timestamp": "2026-04-05T19:54:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,132 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } } }, "captures": { @@ -74,16 +203,54 @@ "packet_filter_rules": [ { "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" ], "DstPorts": [ { - "IP": "*", + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "Ports": { "First": 0, "Last": 65535 @@ -91,168 +258,328 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "100.110.121.96", - "100.90.199.68", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A02.hujson index 50f94d6b..136d6052 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:tagged'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-A02", + "timestamp": "2026-04-05T19:54:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,242 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -74,20 +313,62 @@ "packet_filter_rules": [ { "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" ], "DstPorts": [ { - "IP": "*", + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "Ports": { "First": 0, "Last": 65535 @@ -95,196 +376,939 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A03.hujson index 435a26e6..9a93ed27 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-A03", + "timestamp": "2026-04-05T19:55:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a03.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,280 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -113,16 +376,226 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A04.hujson index 6c24b4fa..fffd80b9 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:*'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-A04", + "timestamp": "2026-04-05T19:55:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,67 +70,193 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.110.121.96", - "fd7a:115c:a1e0::1737:7960" - ], - "DstPorts": [ - { - "IP": "100.110.121.96", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::1737:7960", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.90.82", - "fd7a:115c:a1e0::9e37:5a52" + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" ], "DstPorts": [ { - "IP": "100.103.90.82", + "IP": "0.0.0.0-9.255.255.255", "Ports": { "First": 0, "Last": 65535 } }, { - "IP": "fd7a:115c:a1e0::9e37:5a52", + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "Ports": { "First": 0, "Last": 65535 @@ -135,33 +264,535 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "100.90.199.68", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A05.hujson index 35ab85e0..088a9cf0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:internet:*'] // -// Expected: No filter rules +// Nodes with filter rules: 0 of 8 { "test_id": "ACL-A05", + "timestamp": "2026-04-05T19:55:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,32 +70,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A06.hujson index 3c576c1d..fc37d8c7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:member:*'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-A06", + "timestamp": "2026-04-05T19:56:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,107 +70,662 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "100.110.121.96", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::1737:7960", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "100.103.90.82", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::9e37:5a52", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "100.90.199.68", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A07.hujson index 17d55aed..87a3463a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:*', 'tag:server:22'] // -// Expected: Rules on tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-A07", + "timestamp": "2026-04-05T19:56:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a07.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,114 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -108,11 +197,29 @@ } } ] - } - ] - }, - "user-kris": { - "packet_filter_rules": [ + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, { "SrcIPs": [ "100.110.121.96", @@ -134,11 +241,7 @@ } } ] - } - ] - }, - "user-mon": { - "packet_filter_rules": [ + }, { "SrcIPs": [ "100.103.90.82", @@ -161,33 +264,345 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "100.90.199.68", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A08.hujson index 8c71ae1d..31a179aa 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:tagged:*'] // -// Expected: Rules on exit-node, subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-A08", + "timestamp": "2026-04-05T19:57:01Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a08.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,234 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -74,12 +305,32 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -87,24 +338,781 @@ "Last": 65535 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -124,15 +1132,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -152,15 +1508,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -180,15 +1882,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -208,16 +2256,1142 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A09.hujson index 3ad337c9..716082ad 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A09.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['autogroup:self:*'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 0 of 8 { "test_id": "ACL-A09", + "timestamp": "2026-04-05T19:57:22Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a09.json", "full_policy": { "groups": { "group:admins": [ @@ -67,101 +70,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.110.121.96", - "fd7a:115c:a1e0::1737:7960" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "100.110.121.96", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::1737:7960", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "100.103.90.82", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::9e37:5a52", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "100.90.199.68", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A10.hujson index fb5244f9..c904fff7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A10.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey'] dst=['autogroup:self:*'] // -// Expected: Rules on user1 +// Nodes with filter rules: 0 of 8 { "test_id": "ACL-A10", + "timestamp": "2026-04-05T19:57:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a10.json", "full_policy": { "groups": { "group:admins": [ @@ -67,55 +70,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "100.90.199.68", - "Ports": { - "First": 0, - "Last": 65535 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A11.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A11.hujson index 02301424..384180d2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A11.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A11.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins'] dst=['autogroup:self:*'] // -// Expected: Rules on user1 +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-A11", + "timestamp": "2026-04-05T19:58:04Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a11.json", "full_policy": { "groups": { "group:admins": [ @@ -67,47 +70,166 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { "packet_filter_rules": [ { "SrcIPs": [ - "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { - "IP": "100.90.199.68", + "IP": "100.124.195.93", "Ports": { "First": 0, "Last": 65535 } }, { - "IP": "fd7a:115c:a1e0::2d01:c747", + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", "Ports": { "First": 0, "Last": 65535 @@ -115,7 +237,271 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A12.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A12.hujson index a11e258e..81231254 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A12.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A12.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-A12", + "timestamp": "2026-04-05T19:58:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a12.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,364 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,7 +453,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -135,7 +521,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -161,7 +589,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A13.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A13.hujson index 497367f7..6d648f13 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A13.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A13.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:80-443'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-A13", + "timestamp": "2026-04-05T19:58:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a13.json", "full_policy": { "groups": { "group:admins": [ @@ -67,101 +70,710 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ - "100.110.121.96", - "fd7a:115c:a1e0::1737:7960" + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" ], "DstPorts": [ { - "IP": "100.110.121.96", + "IP": "0.0.0.0-9.255.255.255", "Ports": { - "First": 80, - "Last": 443 + "First": 0, + "Last": 65535 } }, { - "IP": "fd7a:115c:a1e0::1737:7960", + "IP": "11.0.0.0-100.63.255.255", "Ports": { - "First": 80, - "Last": 443 + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 } } ] - } - ] - }, - "user-mon": { - "packet_filter_rules": [ + }, { "SrcIPs": [ "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", "fd7a:115c:a1e0::9e37:5a52" ], "DstPorts": [ { - "IP": "100.103.90.82", + "IP": "100.108.74.26", "Ports": { - "First": 80, - "Last": 443 + "First": 22, + "Last": 22 } }, { - "IP": "fd7a:115c:a1e0::9e37:5a52", + "IP": "fd7a:115c:a1e0::b901:4a87", "Ports": { - "First": 80, - "Last": 443 + "First": 22, + "Last": 22 } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, - "user1": { + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" ], "DstPorts": [ { - "IP": "100.90.199.68", + "IP": "100.108.74.26", "Ports": { - "First": 80, - "Last": 443 + "First": 22, + "Last": 22 } }, { - "IP": "fd7a:115c:a1e0::2d01:c747", + "IP": "fd7a:115c:a1e0::b901:4a87", "Ports": { - "First": 80, - "Last": 443 + "First": 22, + "Last": 22 } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A14.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A14.hujson index ec3f23bc..6abe08b3 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A14.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A14.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:22,80,443'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-A14", + "timestamp": "2026-04-05T19:59:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a14.json", "full_policy": { "groups": { "group:admins": [ @@ -67,185 +70,616 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.110.121.96", - "fd7a:115c:a1e0::1737:7960" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "100.110.121.96", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "100.110.121.96", - "Ports": { - "First": 80, - "Last": 80 - } - }, - { - "IP": "100.110.121.96", - "Ports": { - "First": 443, - "Last": 443 - } - }, - { - "IP": "fd7a:115c:a1e0::1737:7960", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "fd7a:115c:a1e0::1737:7960", - "Ports": { - "First": 80, - "Last": 80 - } - }, - { - "IP": "fd7a:115c:a1e0::1737:7960", - "Ports": { - "First": 443, - "Last": 443 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.90.82", - "fd7a:115c:a1e0::9e37:5a52" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "100.103.90.82", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "100.103.90.82", - "Ports": { - "First": 80, - "Last": 80 - } - }, - { - "IP": "100.103.90.82", - "Ports": { - "First": 443, - "Last": 443 - } - }, - { - "IP": "fd7a:115c:a1e0::9e37:5a52", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "fd7a:115c:a1e0::9e37:5a52", - "Ports": { - "First": 80, - "Last": 80 - } - }, - { - "IP": "fd7a:115c:a1e0::9e37:5a52", - "Ports": { - "First": 443, - "Last": 443 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.90.199.68", - "fd7a:115c:a1e0::2d01:c747" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "100.90.199.68", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "100.90.199.68", - "Ports": { - "First": 80, - "Last": 80 - } - }, - { - "IP": "100.90.199.68", - "Ports": { - "First": 443, - "Last": 443 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 80, - "Last": 80 - } - }, - { - "IP": "fd7a:115c:a1e0::2d01:c747", - "Ports": { - "First": 443, - "Last": 443 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A15.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A15.hujson index c1ef49b2..80ad7d45 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A15.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A15.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'autogroup:tagged'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 0 of 8 { "test_id": "ACL-A15", + "timestamp": "2026-04-05T19:59:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a15.json", "full_policy": { "groups": { "group:admins": [ @@ -68,272 +71,608 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A16.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A16.hujson index 191bc531..ac2699b8 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A16.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A16.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'autogroup:tagged'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 0 of 8 { "test_id": "ACL-A16", + "timestamp": "2026-04-05T19:59:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a16.json", "full_policy": { "groups": { "group:admins": [ @@ -68,69 +71,329 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.103.8.15", - "100.103.90.82", - "100.108.74.26", - "100.110.121.96", - "100.83.200.69", - "100.85.66.106", - "100.90.199.68", - "100.92.142.61", - "fd7a:115c:a1e0::1737:7960", - "fd7a:115c:a1e0::2d01:c747", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::9e37:5a52", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" ], - "DstPorts": [ - { - "IP": "100.108.74.26", - "Ports": { - "First": 22, - "Last": 22 - } - }, - { - "IP": "fd7a:115c:a1e0::b901:4a87", - "Ports": { - "First": 22, - "Last": 22 - } - } - ] - } - ] + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-A17.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-A17.hujson index ea3a904e..6185e856 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-A17.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-A17.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:*', 'tag:server:22', 'autogroup:member:80'] // -// Expected: Rules on tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-A17", + "timestamp": "2026-04-05T20:00:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_a17.json", "full_policy": { "groups": { "group:admins": [ @@ -69,28 +72,854 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -110,15 +939,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -160,15 +1335,383 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -210,15 +1753,383 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +2171,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AH01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AH01.hujson index 92dd3b16..be4c5a40 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AH01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AH01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['internal', 'subnet24'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-AH01", + "timestamp": "2026-04-05T20:00:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ah01.json", "full_policy": { "groups": { "group:admins": [ @@ -68,6 +71,98 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { @@ -75,12 +170,99 @@ "packet_filter_rules": [ { "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "100.107.162.14", + "100.109.43.124", + "100.116.18.24", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { - "IP": "*", + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", "Ports": { "First": 0, "Last": 65535 @@ -88,140 +270,303 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.109.43.124", + "100.116.18.24", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "192.168.1.0/24" + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AH02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AH02.hujson index d5873f3e..ecb26661 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AH02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AH02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['internal', '100.108.74.26'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AH02", + "timestamp": "2026-04-05T20:00:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ah02.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,325 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -107,16 +415,206 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AH03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AH03.hujson index be602f48..50bb68e6 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AH03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AH03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['internal:22', 'subnet24:80', 'tag:server:443'] // -// Expected: Rules on subnet-router, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-AH03", + "timestamp": "2026-04-05T20:01:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ah03.json", "full_policy": { "groups": { "group:admins": [ @@ -69,19 +72,506 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -94,21 +584,678 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -128,16 +1275,824 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AH04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AH04.hujson index 3d3f2be6..6cc446b8 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AH04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AH04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['internal', '10.0.0.0/8'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AH04", + "timestamp": "2026-04-05T20:01:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ah04.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,323 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +412,205 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AH05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AH05.hujson index ac32e0cd..50cda4d8 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AH05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AH05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['internal:22'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AH05", + "timestamp": "2026-04-05T20:01:52Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ah05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,19 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -92,25 +326,1180 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AH06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AH06.hujson index 48c00325..6b684473 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AH06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AH06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.0.0.0/8:22'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AH06", + "timestamp": "2026-04-05T20:02:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ah06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,19 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -92,25 +326,1180 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AR01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AR01.hujson index 8d85fbdf..44511654 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AR01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AR01.hujson @@ -1,13 +1,16 @@ // ACL-AR01 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80,443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AR01", + "timestamp": "2026-04-05T20:02:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ar01.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,324 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -145,16 +452,161 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AR02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AR02.hujson index d2ed01f0..e94277e3 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AR02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AR02.hujson @@ -1,14 +1,17 @@ // ACL-AR02 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80,443'] -// accept: src=['*'] dst=['tag:server:53'] proto=udp +// accept: src=['*'] dst=['tag:server:53'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AR02", + "timestamp": "2026-04-05T20:02:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ar02.json", "full_policy": { "groups": { "group:admins": [ @@ -89,20 +92,574 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -158,9 +715,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -183,16 +746,514 @@ 17 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AR03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AR03.hujson index 1c02253f..5a272461 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AR03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AR03.hujson @@ -1,14 +1,17 @@ // ACL-AR03 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80'] // accept: src=['tag:client'] dst=['tag:server:443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AR03", + "timestamp": "2026-04-05T20:03:15Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ar03.json", "full_policy": { "groups": { "group:admins": [ @@ -88,20 +91,324 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -155,16 +462,161 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AR04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AR04.hujson index 974bad60..7df71f48 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AR04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AR04.hujson @@ -1,14 +1,17 @@ // ACL-AR04 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:prod'] dst=['tag:server:22'] // accept: src=['tag:router'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AR04", + "timestamp": "2026-04-05T20:03:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ar04.json", "full_policy": { "groups": { "group:admins": [ @@ -88,20 +91,432 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -151,8 +566,14 @@ }, { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d" + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -171,16 +592,260 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AR05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AR05.hujson index 14dcafcf..4d2910f7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AR05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AR05.hujson @@ -1,15 +1,18 @@ // ACL-AR05 // -// ACLs: +// ACLs: 4 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80'] // accept: src=['tag:prod'] dst=['tag:server:22'] -// accept: src=['tag:prod'] dst=['tag:server:443'] +// ... and 1 more // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AR05", + "timestamp": "2026-04-05T20:03:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ar05.json", "full_policy": { "groups": { "group:admins": [ @@ -98,20 +101,384 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -187,16 +554,198 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AR06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AR06.hujson index 549dc4a4..d3147f92 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AR06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AR06.hujson @@ -1,13 +1,16 @@ // ACL-AR06 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['*'] dst=['tag:server:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AR06", + "timestamp": "2026-04-05T20:04:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_ar06.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,512 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -119,9 +614,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -141,16 +642,483 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AT01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AT01.hujson index b98acb33..1c4d5990 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AT01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AT01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:server', 'tag:client', 'tag:prod', 'tag:router', 'tag:exit'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-AT01", + "timestamp": "2026-04-05T20:04:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_at01.json", "full_policy": { "groups": { "group:admins": [ @@ -71,6 +74,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -79,13 +330,19 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -99,20 +356,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -126,20 +741,377 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -153,20 +1125,375 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -180,20 +1507,375 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -207,20 +1889,375 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -234,20 +2271,198 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -261,20 +2476,198 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -288,7 +2681,179 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AT02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AT02.hujson index 21e38018..ccdfec31 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AT02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AT02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22', 'tag:client:22', 'tag:prod:22', 'tag:router:22', 'tag:exit:22'] // -// Expected: Rules on exit-node, subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-AT02", + "timestamp": "2026-04-05T20:04:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_at02.json", "full_policy": { "groups": { "group:admins": [ @@ -71,6 +74,234 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -78,12 +309,32 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -91,24 +342,613 @@ "Last": 22 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 22, "Last": 22 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -128,15 +968,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -156,15 +1344,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -184,15 +1718,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -212,16 +2092,782 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AT03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AT03.hujson index 2636356d..8f9f263f 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AT03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AT03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:server', 'tag:client', 'tag:prod', 'tag:router', 'tag:exit'] dst=['autogroup:member:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-AT03", + "timestamp": "2026-04-05T20:05:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_at03.json", "full_policy": { "groups": { "group:admins": [ @@ -71,36 +74,611 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -121,20 +699,205 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -155,20 +918,205 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -189,7 +1137,186 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AT04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AT04.hujson index 2b52cb20..0cb28571 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AT04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AT04.hujson @@ -1,13 +1,16 @@ // ACL-AT04 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:tagged'] dst=['tag:server:22'] // accept: src=['autogroup:member'] dst=['tag:server:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AT04", + "timestamp": "2026-04-05T20:05:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_at04.json", "full_policy": { "groups": { "group:admins": [ @@ -78,35 +81,249 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -151,16 +368,816 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AT05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AT05.hujson index d75d1f76..0803174c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AT05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AT05.hujson @@ -1,13 +1,16 @@ // ACL-AT05 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:server'] dst=['tag:client:22'] // -// Expected: Rules on tagged-client, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-AT05", + "timestamp": "2026-04-05T20:06:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_at05.json", "full_policy": { "groups": { "group:admins": [ @@ -78,14 +81,248 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { "packet_filter_rules": [ @@ -111,10 +348,91 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -140,16 +458,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AT06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AT06.hujson index 27effc5f..615a8769 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AT06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AT06.hujson @@ -1,15 +1,18 @@ // ACL-AT06 // -// ACLs: +// ACLs: 4 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:server'] dst=['tag:prod:5432'] // accept: src=['tag:prod'] dst=['tag:client:80'] -// accept: src=['tag:client'] dst=['tag:prod:443'] +// ... and 1 more // -// Expected: Rules on tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-AT06", + "timestamp": "2026-04-05T20:06:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_at06.json", "full_policy": { "groups": { "group:admins": [ @@ -98,14 +101,320 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { "packet_filter_rules": [ @@ -131,7 +440,82 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -179,7 +563,104 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -205,16 +686,148 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AU01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AU01.hujson index 60740e73..6fb3c34e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AU01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AU01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kristoffer@dalby.cc'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AU01", + "timestamp": "2026-04-05T20:06:44Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_au01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,252 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +341,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AU02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AU02.hujson index 29a555ab..f3407192 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AU02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AU02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['monitorpasskeykradalby@passkey'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AU02", + "timestamp": "2026-04-05T20:07:04Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_au02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,17 +70,228 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -103,19 +317,171 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AU03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AU03.hujson index 5c8d0dbe..62dd429c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AU03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AU03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:developers'] dst=['tag:server:22', 'tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-AU03", + "timestamp": "2026-04-05T20:07:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_au03.json", "full_policy": { "groups": { "group:admins": [ @@ -68,17 +71,260 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -106,7 +352,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -134,16 +453,208 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AU04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AU04.hujson index 8a57f880..5889d02d 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AU04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AU04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['group:developers:22'] // -// Expected: Rules on user-kris, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-AU04", + "timestamp": "2026-04-05T20:07:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_au04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,31 +70,605 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -111,18 +688,410 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -142,7 +1111,347 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AU05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AU05.hujson index 970d9c42..3ba37803 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AU05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AU05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['group:monitors:*'] // -// Expected: Rules on user-mon +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AU05", + "timestamp": "2026-04-05T20:08:07Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_au05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,34 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -114,10 +333,681 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-mon": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-AU06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-AU06.hujson index 0670d274..fdcecc25 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-AU06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-AU06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins', 'group:developers', 'group:monitors'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-AU06", + "timestamp": "2026-04-05T20:08:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_au06.json", "full_policy": { "groups": { "group:admins": [ @@ -69,20 +72,260 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -112,16 +355,209 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C01.hujson index 56186e6e..4124230b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C01.hujson @@ -1,14 +1,17 @@ // ACL-C01 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['autogroup:member'] dst=['tag:server:80'] // accept: src=['*'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-C01", + "timestamp": "2026-04-05T20:08:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c01.json", "full_policy": { "groups": { "group:admins": [ @@ -88,25 +91,298 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -126,7 +402,602 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -178,16 +1049,306 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C02.hujson index 597a87fa..7e048ec6 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C02.hujson @@ -1,14 +1,17 @@ // ACL-C02 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client', 'autogroup:member'] dst=['tag:server:22'] // accept: src=['tag:prod'] dst=['tag:server:80'] // accept: src=['group:admins'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-C02", + "timestamp": "2026-04-05T20:09:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c02.json", "full_policy": { "groups": { "group:admins": [ @@ -89,17 +92,344 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -125,7 +455,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -179,16 +582,278 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C03.hujson index d01b4e1d..885a808f 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C03.hujson @@ -1,13 +1,16 @@ // ACL-C03 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22', 'tag:prod:5432', 'webserver:80'] // accept: src=['autogroup:member'] dst=['autogroup:self:*'] // -// Expected: Rules on tagged-prod, tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 6 of 8 { "test_id": "ACL-C03", + "timestamp": "2026-04-05T20:09:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c03.json", "full_policy": { "groups": { "group:admins": [ @@ -80,17 +83,433 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -116,7 +535,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -149,7 +628,74 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -175,7 +721,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -201,7 +789,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -227,7 +857,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C04.hujson index a5eb78bb..0dd92585 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C04.hujson @@ -1,15 +1,18 @@ // ACL-C04 // -// ACLs: +// ACLs: 4 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:server'] dst=['tag:prod:5432'] // accept: src=['autogroup:member'] dst=['autogroup:self:*'] -// accept: src=['*'] dst=['autogroup:internet:*'] +// ... and 1 more // -// Expected: Rules on tagged-prod, tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 6 of 8 { "test_id": "ACL-C04", + "timestamp": "2026-04-05T20:09:52Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c04.json", "full_policy": { "groups": { "group:admins": [ @@ -98,17 +101,1180 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -134,7 +1300,154 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -160,7 +1473,169 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -186,7 +1661,137 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -212,7 +1817,137 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -238,7 +1973,137 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C05.hujson index 9cb5a0c4..e95c5f95 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22', 'tag:prod:5432', 'tag:client:80', 'tag:router:*', 'tag:exit:*', 'autogroup:member:443', 'autogroup:self:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-C05", + "timestamp": "2026-04-05T20:10:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c05.json", "full_policy": { "groups": { "group:admins": [ @@ -73,6 +76,234 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -80,12 +311,32 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -93,24 +344,829 @@ "Last": 65535 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -130,15 +1186,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -158,15 +1562,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -186,15 +1936,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -214,15 +2310,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -264,15 +2706,383 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,15 +3124,383 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -364,7 +3542,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C06.hujson index b308b3bb..e35efd46 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client', 'tag:prod', 'tag:server', 'autogroup:member', 'group:admins'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-C06", + "timestamp": "2026-04-05T20:10:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c06.json", "full_policy": { "groups": { "group:admins": [ @@ -71,20 +74,304 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.108.74.26", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.108.74.26", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -120,16 +407,245 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.108.74.26", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C07.hujson index e3b87054..231161b9 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C07.hujson @@ -1,15 +1,18 @@ // ACL-C07 // -// ACLs: +// ACLs: 4 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80'] // accept: src=['tag:client'] dst=['tag:server:443'] -// accept: src=['tag:client'] dst=['tag:server:8080'] +// ... and 1 more // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-C07", + "timestamp": "2026-04-05T20:10:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c07.json", "full_policy": { "groups": { "group:admins": [ @@ -98,20 +101,352 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -179,16 +514,175 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C08.hujson index 07a7c836..e526050a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22', 'tag:prod:22', 'tag:client:22', 'tag:router:22', 'tag:exit:22'] // -// Expected: Rules on exit-node, subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-C08", + "timestamp": "2026-04-05T20:11:15Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c08.json", "full_policy": { "groups": { "group:admins": [ @@ -71,6 +74,234 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -78,12 +309,32 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -91,24 +342,613 @@ "Last": 22 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 22, "Last": 22 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -128,15 +968,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -156,15 +1344,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -184,15 +1718,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -212,16 +2092,782 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C09.hujson index 5743dfa6..e1fa60de 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C09.hujson @@ -1,15 +1,18 @@ // ACL-C09 // -// ACLs: +// ACLs: 6 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:prod:22'] // accept: src=['tag:server'] dst=['tag:prod:5432'] -// ... (6 rules total) +// ... and 3 more // -// Expected: Rules on subnet-router, tagged-prod, tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 7 of 8 { "test_id": "ACL-C09", + "timestamp": "2026-04-05T20:11:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c09.json", "full_policy": { "groups": { "group:admins": [ @@ -116,11 +119,1093 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -148,10 +1233,317 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -199,7 +1591,191 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -225,7 +1801,169 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -251,7 +1989,167 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -277,7 +2175,137 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -303,7 +2331,167 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-C10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-C10.hujson index ad4205d1..2b6ac290 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-C10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-C10.hujson @@ -1,14 +1,17 @@ // ACL-C10 // -// ACLs: +// ACLs: 3 rules // accept: src=['autogroup:member'] dst=['autogroup:self:*'] // accept: src=['autogroup:member'] dst=['tag:server:22', 'tag:prod:5432'] // accept: src=['autogroup:tagged'] dst=['autogroup:tagged:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-C10", + "timestamp": "2026-04-05T20:11:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_c10.json", "full_policy": { "groups": { "group:admins": [ @@ -89,6 +92,210 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { @@ -96,18 +303,160 @@ "packet_filter_rules": [ { "SrcIPs": [ - "100.103.8.15", - "100.108.74.26", - "100.83.200.69", - "100.85.66.106", - "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5b37:80f", - "fd7a:115c:a1e0::7c37:426a", - "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" ], "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -115,31 +464,872 @@ "Last": 65535 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -158,22 +1348,354 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -192,7 +1714,309 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -225,15 +2049,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -252,7 +2098,374 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -285,15 +2498,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -312,7 +2547,374 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -338,7 +2940,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -364,7 +3039,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -390,7 +3138,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D01.hujson index f84a8500..9648e2da 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D01.hujson @@ -1,13 +1,16 @@ // ACL-D01 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['*'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-D01", + "timestamp": "2026-04-05T20:12:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d01.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,512 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -119,9 +614,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -141,16 +642,483 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D02.hujson index 241fa8bd..49509dbd 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22', 'webserver:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-D02", + "timestamp": "2026-04-05T20:12:39Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d02.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,282 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -114,16 +379,140 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D03.hujson index 8f60e4d8..31e2de44 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.108.74.26', 'tag:server'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-D03", + "timestamp": "2026-04-05T20:13:00Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d03.json", "full_policy": { "groups": { "group:admins": [ @@ -68,6 +71,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -88,7 +339,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -107,7 +416,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -126,7 +493,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -145,7 +565,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -164,7 +637,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -183,7 +991,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -202,7 +1061,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -221,7 +1131,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D04.hujson index 7270d8b8..c2222258 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.108.74.26', 'webserver'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-D04", + "timestamp": "2026-04-05T20:13:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d04.json", "full_policy": { "groups": { "group:admins": [ @@ -68,6 +71,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -87,7 +338,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -105,7 +413,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -123,7 +488,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -141,7 +558,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -159,7 +628,341 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -177,7 +980,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -195,7 +1048,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -213,7 +1116,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D05.hujson index 4524118f..02fe7d1c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.108.74.26:22', 'tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-D05", + "timestamp": "2026-04-05T20:13:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d05.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -116,16 +341,714 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D06.hujson index ad4758be..845253f1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.108.74.26:22', 'webserver:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-D06", + "timestamp": "2026-04-05T20:14:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d06.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -109,16 +334,693 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D07.hujson index e2385e95..16739295 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'autogroup:tagged'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-D07", + "timestamp": "2026-04-05T20:14:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d07.json", "full_policy": { "groups": { "group:admins": [ @@ -68,6 +71,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -77,20 +328,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -102,7 +375,381 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -110,20 +757,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -135,7 +804,380 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -143,20 +1185,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -168,7 +1232,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -176,20 +1611,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -201,7 +1658,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -209,20 +2037,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -234,7 +2084,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -242,20 +2463,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -267,7 +2510,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -275,20 +2889,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -300,7 +2936,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -308,20 +3315,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -333,7 +3362,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-D08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-D08.hujson index 55638c49..795e9754 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-D08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-D08.hujson @@ -1,13 +1,16 @@ // ACL-D08 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:*'] // accept: src=['kratail2tid@passkey'] dst=['kratail2tid@passkey:*'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-D08", + "timestamp": "2026-04-05T20:14:44Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_d08.json", "full_policy": { "groups": { "group:admins": [ @@ -78,23 +81,392 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -120,7 +492,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -146,7 +560,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -186,7 +642,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E01.hujson index 535d8beb..354b7244 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.108.74.26'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-E01", + "timestamp": "2026-04-05T20:15:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -86,7 +337,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -104,7 +412,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -122,7 +487,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -140,7 +557,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -158,7 +627,341 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -176,7 +979,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -194,7 +1047,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -212,7 +1115,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E02.hujson index 96b7b9ff..6714a19e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:server'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-E02", + "timestamp": "2026-04-05T20:15:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -87,7 +338,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -106,7 +415,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -125,7 +492,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -144,7 +564,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -163,7 +636,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -182,7 +990,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -201,7 +1060,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -220,7 +1130,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E03.hujson index 0e546ffb..5b431055 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['webserver'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-E03", + "timestamp": "2026-04-05T20:15:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -86,7 +337,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -104,7 +412,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -122,7 +487,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -140,7 +557,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -158,7 +627,341 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -176,7 +979,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -194,7 +1047,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -212,7 +1115,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E04.hujson index 4a7eb388..1f9aa451 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.108.74.26:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-E04", + "timestamp": "2026-04-05T20:16:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -101,16 +326,672 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E05.hujson index a7a77be8..205eb507 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-E05", + "timestamp": "2026-04-05T20:16:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -108,16 +333,693 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E06.hujson index d3f900ce..598f251c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['webserver:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-E06", + "timestamp": "2026-04-05T20:16:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -101,16 +326,672 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E07.hujson index dfebb69a..8f49de04 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-E07", + "timestamp": "2026-04-05T20:17:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e07.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,252 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +341,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E08.hujson index 9b71ac5f..d805fe10 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-E08", + "timestamp": "2026-04-05T20:17:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e08.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,252 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +341,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-E09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-E09.hujson index a7b68e01..9b387f38 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-E09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-E09.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey', 'group:admins'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-E09", + "timestamp": "2026-04-05T20:17:52Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_e09.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,252 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -107,16 +342,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR01.hujson index 8cdf8e89..23fcf927 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR01.hujson @@ -1,12 +1,12 @@ // ACL-ERR01 // // ACL: accept: src=['tag:nonexistent'] dst=['tag:server:22'] -// -// Expected: Error — src=tag not found: "tag:nonexistent" { "test_id": "ACL-ERR01", + "timestamp": "2026-04-05T20:18:13Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err01.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "src=tag not found: \"tag:nonexistent\"" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR02.hujson index 667d6fde..ab664b79 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR02.hujson @@ -1,12 +1,12 @@ // ACL-ERR02 // // ACL: accept: src=['autogroup:self'] dst=['tag:server:22'] -// -// Expected: Error — "autogroup:self" not valid on the src side of a rule { "test_id": "ACL-ERR02", + "timestamp": "2026-04-05T20:18:13Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err02.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "\"autogroup:self\" not valid on the src side of a rule" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR03.hujson index ef362ac6..2757956e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR03.hujson @@ -1,12 +1,12 @@ // ACL-ERR03 // // ACL: accept: src=['*'] dst=['autogroup:self'] -// -// Expected: Error — dst="autogroup:self": port range "self": invalid first integer { "test_id": "ACL-ERR03", + "timestamp": "2026-04-05T20:18:13Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err03.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "dst=\"autogroup:self\": port range \"self\": invalid first integer" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR04.hujson index 0e5326c6..b4d2847c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR04.hujson @@ -1,12 +1,12 @@ // ACL-ERR04 // // ACL: accept: src=['tag:nonexistent'] dst=['*:*'] -// -// Expected: Error — src=tag not found: "tag:nonexistent" { "test_id": "ACL-ERR04", + "timestamp": "2026-04-05T20:18:14Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err04.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "src=tag not found: \"tag:nonexistent\"" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR05.hujson index 5af0ee25..e94181a5 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR05.hujson @@ -1,12 +1,12 @@ // ACL-ERR05 // // ACL: accept: src=['*'] dst=['tag:nonexistent:22'] -// -// Expected: Error — dst="tag:nonexistent": tag not found: "tag:nonexistent" { "test_id": "ACL-ERR05", + "timestamp": "2026-04-05T20:18:14Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err05.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "dst=\"tag:nonexistent\": tag not found: \"tag:nonexistent\"" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR06.hujson index 4a9eda0c..04d84905 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR06.hujson @@ -1,12 +1,12 @@ // ACL-ERR06 // -// ACL: deny: src=['tag:client'] dst=['tag:server:22'] -// -// Expected: Error — action="deny" is not supported +// ACL: accept: src=['tag:client'] dst=['tag:server:22'] { "test_id": "ACL-ERR06", + "timestamp": "2026-04-05T20:18:14Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err06.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "action=\"deny\" is not supported" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR07.hujson index eec426e0..fb7fbb04 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR07.hujson @@ -1,12 +1,12 @@ // ACL-ERR07 // // ACL: accept: src=['*'] dst=['tag:server:ssh'] -// -// Expected: Error — dst="tag:server:ssh": port range "ssh": invalid first integer { "test_id": "ACL-ERR07", + "timestamp": "2026-04-05T20:18:18Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err07.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "dst=\"tag:server:ssh\": port range \"ssh\": invalid first integer" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR08.hujson index 95a7f51d..0307f472 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR08.hujson @@ -1,14 +1,14 @@ // ACL-ERR08 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:*'] // accept: src=['tag:client'] dst=['autogroup:self:22'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-ERR08", + "timestamp": "2026-04-05T20:18:23Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err08.json", "full_policy": { "groups": { "group:admins": [ @@ -80,6 +80,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR09.hujson index 4843b638..61a35e04 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-ERR09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-ERR09.hujson @@ -1,14 +1,14 @@ // ACL-ERR09 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:*'] // accept: src=['autogroup:tagged'] dst=['autogroup:self:22'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-ERR09", + "timestamp": "2026-04-05T20:18:28Z", "error": true, "input": { + "policy_file": "acl_policies/acl_err09.json", "full_policy": { "groups": { "group:admins": [ @@ -80,6 +80,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H01.hujson index 554fcc35..9741c494 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['webserver:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-H01", + "timestamp": "2026-04-05T20:18:33Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -101,16 +326,672 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H02.hujson index 1fd43096..7c8a7e7c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['webserver'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-H02", + "timestamp": "2026-04-05T20:18:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -86,7 +337,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -104,7 +412,64 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -122,7 +487,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -140,7 +557,59 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -158,7 +627,341 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -176,7 +979,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -194,7 +1047,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -212,7 +1115,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H03.hujson index 309b98eb..956d8948 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['internal'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-H03", + "timestamp": "2026-04-05T20:19:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,323 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -105,16 +411,205 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H04.hujson index 7cede609..36357958 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['internal:22'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-H04", + "timestamp": "2026-04-05T20:19:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,19 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -92,25 +326,1180 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H05.hujson index 537ebaaf..b61f9bc0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['webserver:22', 'prodbox:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-H05", + "timestamp": "2026-04-05T20:20:00Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h05.json", "full_policy": { "groups": { "group:admins": [ @@ -68,25 +71,487 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -99,15 +564,354 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -120,16 +924,499 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H06.hujson index b62d98ef..2e77b093 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['webserver', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-H06", + "timestamp": "2026-04-05T20:20:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h06.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,270 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -108,16 +361,134 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H07.hujson index 123bbc34..7503e4dc 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins'] dst=['webserver:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-H07", + "timestamp": "2026-04-05T20:20:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h07.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,238 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -99,16 +320,140 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-H08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-H08.hujson index 4e5f6714..e854a33e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-H08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-H08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['subnet24:80'] // -// Expected: No filter rules +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-H08", + "timestamp": "2026-04-05T20:21:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_h08.json", "full_policy": { "groups": { "group:admins": [ @@ -67,32 +70,640 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-K01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-K01.hujson index d70f5cf6..433ebc7b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-K01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-K01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*', 'autogroup:member', 'autogroup:tagged', 'group:admins', 'tag:client', 'webserver', '100.90.199.68'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-K01", + "timestamp": "2026-04-05T20:21:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_k01.json", "full_policy": { "groups": { "group:admins": [ @@ -73,45 +76,289 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -130,16 +377,807 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-K02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-K02.hujson index 4e5c18d7..81f6fe95 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-K02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-K02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22', 'tag:prod:5432', 'webserver:80', 'prodbox:443', 'group:admins:8080', 'kratail2tid@passkey:3000', '100.108.74.26:9000'] // -// Expected: Rules on tagged-prod, tagged-server, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-K02", + "timestamp": "2026-04-05T20:21:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_k02.json", "full_policy": { "groups": { "group:admins": [ @@ -73,17 +76,398 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -116,7 +500,74 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -156,13 +607,125 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -202,7 +765,79 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-K03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-K03.hujson index 3c8727b0..be3edfe4 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-K03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-K03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'autogroup:tagged', 'group:admins', 'group:developers', 'kratail2tid@passkey', 'tag:client', 'tag:prod', 'tag:server', 'webserver', 'prodbox'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-K03", + "timestamp": "2026-04-05T20:22:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_k03.json", "full_policy": { "groups": { "group:admins": [ @@ -76,6 +79,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -85,20 +336,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -110,7 +383,381 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -118,20 +765,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -143,7 +812,380 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -151,20 +1193,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -176,7 +1240,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -184,20 +1619,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -209,7 +1666,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -217,20 +2045,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -242,7 +2092,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -250,20 +2471,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -275,7 +2518,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -283,20 +2897,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -308,7 +2944,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -316,20 +3323,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -341,7 +3370,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-K04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-K04.hujson index f318689f..2d40a19b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-K04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-K04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22', 'tag:server:80', 'tag:server:443', 'tag:prod:5432', 'tag:prod:3306', 'tag:client:80', 'tag:client:443', 'webserver:8080', 'prodbox:8080'] // -// Expected: Rules on tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-K04", + "timestamp": "2026-04-05T20:22:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_k04.json", "full_policy": { "groups": { "group:admins": [ @@ -75,22 +78,658 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -124,15 +763,375 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -173,15 +1172,382 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,16 +1602,586 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-K05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-K05.hujson index ede4545c..ea262351 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-K05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-K05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'group:admins', 'kratail2tid@passkey', 'tag:client', 'tag:prod', '100.83.200.69', '100.103.8.15'] dst=['tag:server:22', 'webserver:80', '100.108.74.26:443', 'group:admins:8080', 'kratail2tid@passkey:9000'] // -// Expected: Rules on tagged-server, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-K05", + "timestamp": "2026-04-05T20:22:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_k05.json", "full_policy": { "groups": { "group:admins": [ @@ -77,20 +80,410 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -138,13 +531,245 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -192,7 +817,143 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M01.hujson index f2a35a24..28001bc9 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey', 'tag:client', 'group:monitors'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M01", + "timestamp": "2026-04-05T20:23:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m01.json", "full_policy": { "groups": { "group:admins": [ @@ -69,20 +72,276 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -112,16 +371,195 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M02.hujson index 23e01b52..63596f74 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.90.199.68', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M02", + "timestamp": "2026-04-05T20:23:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m02.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,270 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -108,16 +361,163 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M03.hujson index 40b2eda9..4e8b0591 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['webserver', 'tag:client'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M03", + "timestamp": "2026-04-05T20:23:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m03.json", "full_policy": { "groups": { "group:admins": [ @@ -68,17 +71,246 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -105,19 +337,189 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M04.hujson index 44f91d4e..0b8cd417 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M04", + "timestamp": "2026-04-05T20:24:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m04.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,272 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +364,164 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M05.hujson index 9af2e0e6..77b0f24d 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey', 'group:monitors'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M05", + "timestamp": "2026-04-05T20:24:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m05.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,256 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +348,178 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M06.hujson index e4b5a3ae..4f813f3d 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M06", + "timestamp": "2026-04-05T20:24:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m06.json", "full_policy": { "groups": { "group:admins": [ @@ -68,29 +71,251 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "100.83.200.69", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48", "fd7a:115c:a1e0::c537:c845" ], @@ -111,16 +336,699 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "100.83.200.69", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "100.83.200.69", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "100.83.200.69", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M07.hujson index dd5605d1..5298d9aa 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'tag:client'] dst=['tag:server:22,80,443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M07", + "timestamp": "2026-04-05T20:25:14Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m07.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,336 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -141,16 +460,254 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M08.hujson index c134be37..279e2471 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'tag:client'] dst=['tag:server:80-443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M08", + "timestamp": "2026-04-05T20:25:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m08.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,280 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -113,16 +376,226 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M09.hujson index 25c1a50d..7c5c5650 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M09.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client', 'internal'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M09", + "timestamp": "2026-04-05T20:25:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m09.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,343 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -108,16 +434,222 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-M10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-M10.hujson index 39351772..b5fc00f3 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-M10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-M10.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.92.142.61', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-M10", + "timestamp": "2026-04-05T20:26:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_m10.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,286 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.92.142.61", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.92.142.61", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -108,16 +377,149 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.92.142.61", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR01.hujson index 347d0d59..215d3b3a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR01.hujson @@ -1,13 +1,16 @@ // ACL-MR01 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-MR01", + "timestamp": "2026-04-05T20:26:37Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr01.json", "full_policy": { "groups": { "group:admins": [ @@ -78,17 +81,287 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -114,7 +387,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -140,16 +473,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR02.hujson index da7e1668..9cfa3a22 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR02.hujson @@ -1,13 +1,16 @@ // ACL-MR02 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR02", + "timestamp": "2026-04-05T20:26:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr02.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -131,16 +410,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR03.hujson index 92370f99..12fc4dc4 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR03.hujson @@ -1,13 +1,16 @@ // ACL-MR03 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:prod'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR03", + "timestamp": "2026-04-05T20:27:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr03.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,328 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -139,16 +450,170 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR04.hujson index 84bae736..cc0871f6 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR04.hujson @@ -1,13 +1,16 @@ // ACL-MR04 // -// ACLs: +// ACLs: 2 rules // accept: src=['group:admins'] dst=['tag:server:22'] // accept: src=['kratail2tid@passkey'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR04", + "timestamp": "2026-04-05T20:27:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr04.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,280 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -131,16 +394,161 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR05.hujson index 76d77776..d35adfa0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR05.hujson @@ -1,13 +1,16 @@ // ACL-MR05 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['group:admins:22'] // accept: src=['*'] dst=['kratail2tid@passkey:22'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR05", + "timestamp": "2026-04-05T20:28:01Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr05.json", "full_policy": { "groups": { "group:admins": [ @@ -78,37 +81,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -142,7 +358,723 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR06.hujson index 80594dbb..a23357a8 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR06.hujson @@ -1,13 +1,16 @@ // ACL-MR06 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['autogroup:member:22'] // accept: src=['tag:client'] dst=['group:admins:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MR06", + "timestamp": "2026-04-05T20:28:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr06.json", "full_policy": { "groups": { "group:admins": [ @@ -78,23 +81,400 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -120,7 +500,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -146,7 +584,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -186,7 +682,79 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR07.hujson index 9866bec2..825239f2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR07.hujson @@ -1,13 +1,16 @@ // ACL-MR07 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['tag:server:22', 'tag:prod:5432'] // accept: src=['tag:client'] dst=['tag:server:80', 'tag:router:443'] // -// Expected: Rules on subnet-router, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MR07", + "timestamp": "2026-04-05T20:28:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr07.json", "full_policy": { "groups": { "group:admins": [ @@ -80,11 +83,530 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -110,18 +632,233 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -141,15 +878,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -191,16 +1274,528 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR08.hujson index 0e0e4d58..d55cc562 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR08.hujson @@ -1,14 +1,17 @@ // ACL-MR08 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:prod'] dst=['tag:server:80'] // accept: src=['tag:router'] dst=['tag:server:443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR08", + "timestamp": "2026-04-05T20:29:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr08.json", "full_policy": { "groups": { "group:admins": [ @@ -88,20 +91,432 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -151,8 +566,14 @@ }, { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d" + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -171,16 +592,260 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR09.hujson index b051fb10..9865cb39 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR09.hujson @@ -1,14 +1,17 @@ // ACL-MR09 // -// ACLs: +// ACLs: 3 rules // accept: src=['autogroup:member'] dst=['tag:server:22'] // accept: src=['group:admins'] dst=['tag:server:22'] // accept: src=['kratail2tid@passkey'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR09", + "timestamp": "2026-04-05T20:29:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr09.json", "full_policy": { "groups": { "group:admins": [ @@ -88,20 +91,332 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -167,16 +482,245 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR10.hujson index 0f652aeb..16109361 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR10.hujson @@ -1,14 +1,17 @@ // ACL-MR10 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:prod:22'] // accept: src=['tag:client'] dst=['tag:router:22'] // -// Expected: Rules on subnet-router, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MR10", + "timestamp": "2026-04-05T20:29:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr10.json", "full_policy": { "groups": { "group:admins": [ @@ -88,11 +91,347 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -118,10 +457,189 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -147,7 +665,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -173,16 +751,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR11.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR11.hujson index e9714b01..901c8235 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR11.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR11.hujson @@ -1,13 +1,16 @@ // ACL-MR11 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:member'] dst=['autogroup:member:22'] // accept: src=['group:admins'] dst=['group:admins:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MR11", + "timestamp": "2026-04-05T20:30:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr11.json", "full_policy": { "groups": { "group:admins": [ @@ -78,23 +81,384 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -124,7 +488,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -154,7 +591,80 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -206,7 +716,102 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR12.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR12.hujson index 5c99f501..08f73d9f 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR12.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR12.hujson @@ -1,13 +1,16 @@ // ACL-MR12 // -// ACLs: +// ACLs: 2 rules // accept: src=['kratail2tid@passkey'] dst=['kratail2tid@passkey:22'] // accept: src=['group:admins'] dst=['kratail2tid@passkey:80'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MR12", + "timestamp": "2026-04-05T20:30:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr12.json", "full_policy": { "groups": { "group:admins": [ @@ -78,29 +81,348 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -140,7 +462,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR13.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR13.hujson index 08ae7a43..a73cd3c7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR13.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR13.hujson @@ -1,13 +1,16 @@ // ACL-MR13 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:tagged'] dst=['autogroup:tagged:22'] // accept: src=['tag:client', 'tag:prod'] dst=['autogroup:tagged:80'] // -// Expected: Rules on exit-node, subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-MR13", + "timestamp": "2026-04-05T20:30:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr13.json", "full_policy": { "groups": { "group:admins": [ @@ -79,6 +82,210 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { @@ -87,17 +294,53 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -105,12 +348,208 @@ "Last": 22 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 22, "Last": 22 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } } ] }, @@ -122,6 +561,20 @@ "fd7a:115c:a1e0::c537:c845" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -129,31 +582,1000 @@ "Last": 80 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 80, "Last": 80 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -196,22 +1618,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -254,22 +2032,370 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -312,22 +2438,370 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -370,16 +2844,399 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR14.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR14.hujson index cdfd648f..61ab5c56 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR14.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR14.hujson @@ -1,13 +1,16 @@ // ACL-MR14 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:member', 'autogroup:tagged'] dst=['autogroup:member:22', 'autogroup:tagged:80'] // accept: src=['*'] dst=['*:443'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR14", + "timestamp": "2026-04-05T20:31:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr14.json", "full_policy": { "groups": { "group:admins": [ @@ -80,6 +83,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -89,22 +340,100 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -112,20 +441,222 @@ "Last": 80 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 80, "Last": 80 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } } ] }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -138,7 +669,663 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -146,20 +1333,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -180,9 +1389,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -195,7 +1410,410 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -203,20 +1821,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -237,9 +1877,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -252,7 +1898,408 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -260,20 +2307,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -294,9 +2363,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -309,7 +2384,408 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -317,20 +2793,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -351,9 +2849,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -366,7 +2870,408 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -374,20 +3279,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -408,9 +3335,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -423,7 +3356,408 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -431,20 +3765,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -465,9 +3821,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -480,7 +3842,408 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -488,20 +4251,42 @@ "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -522,9 +4307,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -537,7 +4328,408 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR15.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR15.hujson index 2d4e4fe2..e8fff376 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR15.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR15.hujson @@ -1,13 +1,16 @@ // ACL-MR15 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['*:*'] // accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR15", + "timestamp": "2026-04-05T20:31:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr15.json", "full_policy": { "groups": { "group:admins": [ @@ -78,6 +81,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -85,93 +336,15 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -206,15 +379,1915 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -227,15 +2300,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -248,15 +2670,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -269,7 +3040,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR16.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR16.hujson index 893cda8b..d1355fa3 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR16.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR16.hujson @@ -1,14 +1,17 @@ // ACL-MR16 // -// ACLs: +// ACLs: 3 rules // accept: src=['*'] dst=['tag:server:22'] // accept: src=['*'] dst=['tag:prod:5432'] // accept: src=['*'] dst=['*:80'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR16", + "timestamp": "2026-04-05T20:31:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr16.json", "full_policy": { "groups": { "group:admins": [ @@ -88,6 +91,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -95,12 +346,46 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, { "IP": "*", "Ports": { @@ -110,15 +395,395 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -131,15 +796,366 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -152,15 +1168,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -187,15 +1552,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -222,15 +1950,378 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -243,15 +2334,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -264,15 +2704,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -285,7 +3074,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR17.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR17.hujson index 542e76aa..c4c6e6f4 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR17.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR17.hujson @@ -1,13 +1,16 @@ // ACL-MR17 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['*:*'] // accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR17", + "timestamp": "2026-04-05T20:32:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr17.json", "full_policy": { "groups": { "group:admins": [ @@ -78,6 +81,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -95,10 +346,96 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -117,7 +454,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -136,7 +531,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -155,7 +885,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -188,7 +971,74 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -207,7 +1057,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -226,7 +1127,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -245,7 +1197,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR18.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR18.hujson index 63fb17a8..800097d5 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR18.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR18.hujson @@ -1,13 +1,16 @@ // ACL-MR18 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['tag:server:22', 'tag:prod:5432', 'tag:client:80'] // accept: src=['tag:client'] dst=['tag:server:80', '*:443'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR18", + "timestamp": "2026-04-05T20:32:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr18.json", "full_policy": { "groups": { "group:admins": [ @@ -81,11 +84,317 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, { "SrcIPs": [ "100.83.200.69", @@ -98,10 +407,184 @@ "First": 443, "Last": 443 } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -120,15 +603,109 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -163,15 +740,386 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -206,15 +1154,376 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -263,7 +1572,376 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -282,7 +1960,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -301,7 +2060,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -320,7 +2160,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR19.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR19.hujson index 3e4a5bb1..39cbdeec 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR19.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR19.hujson @@ -1,13 +1,16 @@ // ACL-MR19 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:tagged'] dst=['*:*'] // accept: src=['autogroup:member'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR19", + "timestamp": "2026-04-05T20:32:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr19.json", "full_policy": { "groups": { "group:admins": [ @@ -78,6 +81,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -86,15 +337,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -125,22 +398,431 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -171,22 +853,430 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -217,22 +1307,428 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -263,22 +1759,428 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -309,22 +2211,428 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -355,22 +2663,428 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -401,22 +3115,428 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -447,7 +3567,391 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR20.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR20.hujson index feb762a3..db7a7ac0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR20.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR20.hujson @@ -1,13 +1,16 @@ // ACL-MR20 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:member', 'group:admins', 'kratail2tid@passkey'] dst=['tag:server:22'] // accept: src=['tag:server', 'webserver', '100.108.74.26'] dst=['group:admins:80'] // -// Expected: Rules on tagged-server, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-MR20", + "timestamp": "2026-04-05T20:33:14Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr20.json", "full_policy": { "groups": { "group:admins": [ @@ -82,20 +85,304 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -125,13 +412,171 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -157,7 +602,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR21.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR21.hujson index 1d6fd681..f4e6981d 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR21.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR21.hujson @@ -1,15 +1,18 @@ // ACL-MR21 // -// ACLs: +// ACLs: 4 rules // accept: src=['autogroup:member'] dst=['tag:server:22'] // accept: src=['autogroup:member'] dst=['tag:prod:5432'] // accept: src=['autogroup:member'] dst=['tag:client:80'] -// accept: src=['autogroup:member'] dst=['webserver:443'] +// ... and 1 more // -// Expected: Rules on tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MR21", + "timestamp": "2026-04-05T20:33:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr21.json", "full_policy": { "groups": { "group:admins": [ @@ -98,14 +101,282 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { "packet_filter_rules": [ @@ -135,7 +406,95 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -165,7 +524,95 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -202,16 +649,306 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR22.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR22.hujson index 1aca77b1..d18aef9c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR22.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR22.hujson @@ -1,15 +1,18 @@ // ACL-MR22 // -// ACLs: +// ACLs: 5 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:prod:22'] // accept: src=['tag:client'] dst=['tag:router:22'] -// ... (5 rules total) +// ... and 2 more // -// Expected: Rules on subnet-router, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MR22", + "timestamp": "2026-04-05T20:33:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr22.json", "full_policy": { "groups": { "group:admins": [ @@ -107,11 +110,375 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -137,10 +504,189 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -173,7 +719,74 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -206,16 +819,140 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MR23.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MR23.hujson index 707fbcfb..11556ad2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MR23.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MR23.hujson @@ -1,15 +1,18 @@ // ACL-MR23 // -// ACLs: +// ACLs: 6 rules // accept: src=['tag:server'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:client:22'] // accept: src=['tag:prod'] dst=['tag:prod:22'] -// ... (6 rules total) +// ... and 3 more // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MR23", + "timestamp": "2026-04-05T20:34:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mr23.json", "full_policy": { "groups": { "group:admins": [ @@ -116,11 +119,379 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, { "SrcIPs": [ "100.103.90.82", @@ -139,15 +510,359 @@ } } ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d" + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -185,7 +900,171 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -230,7 +1109,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -275,7 +1257,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -320,7 +1405,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -345,9 +1533,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -367,7 +1561,376 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -392,9 +1955,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -414,7 +1983,376 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -439,9 +2377,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -461,7 +2405,376 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU01.hujson index 1175ffb1..31ec0ae2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU01.hujson @@ -1,13 +1,16 @@ // ACL-MU01 // -// ACLs: +// ACLs: 2 rules // accept: src=['kratail2tid@passkey'] dst=['tag:server:22'] // accept: src=['kristoffer@dalby.cc'] dst=['tag:server:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MU01", + "timestamp": "2026-04-05T20:34:37Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu01.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -139,16 +418,198 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU02.hujson index 85348228..7d47e312 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:developers'] dst=['autogroup:self:*'] // -// Expected: Rules on user-kris, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-MU02", + "timestamp": "2026-04-05T20:34:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,320 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,10 +409,71 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -138,7 +499,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU03.hujson index 8e8a8000..ab54b6b7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU03.hujson @@ -1,13 +1,16 @@ // ACL-MU03 // -// ACLs: +// ACLs: 2 rules // accept: src=['group:developers'] dst=['tag:server:22'] // accept: src=['group:monitors'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-MU03", + "timestamp": "2026-04-05T20:35:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu03.json", "full_policy": { "groups": { "group:admins": [ @@ -78,17 +81,276 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -114,7 +376,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -142,16 +462,194 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU04.hujson index 0ce5d0bb..fd49c4bf 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU04.hujson @@ -1,13 +1,16 @@ // ACL-MU04 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:member'] dst=['autogroup:self:*'] // accept: src=['autogroup:member'] dst=['autogroup:member:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MU04", + "timestamp": "2026-04-05T20:35:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu04.json", "full_policy": { "groups": { "group:admins": [ @@ -78,23 +81,472 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -146,7 +598,102 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -198,7 +745,102 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -250,7 +892,102 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU05.hujson index 076143e9..699947cb 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['kratail2tid@passkey:22'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MU05", + "timestamp": "2026-04-05T20:36:01Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,37 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -117,7 +333,681 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU06.hujson index a04f4839..e53017d0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['kristoffer@dalby.cc:*'] // -// Expected: Rules on user-kris +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-MU06", + "timestamp": "2026-04-05T20:36:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,31 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -111,13 +333,681 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU07.hujson index 8e62959f..0ac37056 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey', 'kristoffer@dalby.cc', 'monitorpasskeykradalby@passkey'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-MU07", + "timestamp": "2026-04-05T20:36:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu07.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +72,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -93,7 +344,93 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -116,7 +453,93 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -139,7 +562,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -162,7 +666,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -185,7 +770,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -208,7 +874,346 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -231,7 +1236,346 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -254,7 +1598,346 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-MU08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-MU08.hujson index 937f2544..c1c225cc 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-MU08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-MU08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['kratail2tid@passkey:22', 'kristoffer@dalby.cc:22', 'monitorpasskeykradalby@passkey:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-MU08", + "timestamp": "2026-04-05T20:37:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_mu08.json", "full_policy": { "groups": { "group:admins": [ @@ -69,31 +72,698 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -113,15 +783,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -141,15 +1157,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -169,7 +1531,347 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-O01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-O01.hujson index f518f483..04e0f940 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-O01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-O01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client', 'tag:prod'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-O01", + "timestamp": "2026-04-05T20:37:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_o01.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,288 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +380,150 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-O02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-O02.hujson index 9e1e7be2..ca0a94a0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-O02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-O02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:prod', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-O02", + "timestamp": "2026-04-05T20:37:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_o02.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,288 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +380,150 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-O03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-O03.hujson index 8a83a0ee..4a7ffd58 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-O03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-O03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22', 'tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-O03", + "timestamp": "2026-04-05T20:38:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_o03.json", "full_policy": { "groups": { "group:admins": [ @@ -68,17 +71,287 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -104,7 +377,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -130,16 +463,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-O04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-O04.hujson index 7fb960e5..82fecb91 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-O04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-O04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:prod:5432', 'tag:server:22'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-O04", + "timestamp": "2026-04-05T20:38:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_o04.json", "full_policy": { "groups": { "group:admins": [ @@ -68,17 +71,287 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -104,7 +377,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -130,16 +463,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-P01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-P01.hujson index 52bee80c..2934b75b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-P01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-P01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:*'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-P01", + "timestamp": "2026-04-05T20:38:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_p01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -108,16 +333,693 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-P02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-P02.hujson index 43014155..92b41f7a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-P02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-P02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:80-443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-P02", + "timestamp": "2026-04-05T20:39:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_p02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -108,16 +333,693 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-P03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-P03.hujson index d2dbd89a..75b20550 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-P03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-P03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22,80,443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-P03", + "timestamp": "2026-04-05T20:39:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_p03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -136,16 +361,777 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-P04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-P04.hujson index 30e83912..5b6013f2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-P04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-P04.hujson @@ -1,11 +1,14 @@ // ACL-P04 // -// ACL: accept: src=['*'] dst=['tag:server:22'] proto=tcp +// ACL: accept: src=['*'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-P04", + "timestamp": "2026-04-05T20:39:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_p04.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,250 @@ "proto": "tcp" } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -112,16 +337,702 @@ 6 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-P05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-P05.hujson index a36c6766..497f84c0 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-P05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-P05.hujson @@ -1,11 +1,14 @@ // ACL-P05 // -// ACL: accept: src=['*'] dst=['tag:server:53'] proto=udp +// ACL: accept: src=['*'] dst=['tag:server:53'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-P05", + "timestamp": "2026-04-05T20:40:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_p05.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,250 @@ "proto": "udp" } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -112,16 +337,702 @@ 17 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-P06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-P06.hujson index 5d87a845..8c91eea4 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-P06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-P06.hujson @@ -1,11 +1,14 @@ // ACL-P06 // -// ACL: accept: src=['*'] dst=['tag:server:*'] proto=1 +// ACL: accept: src=['*'] dst=['tag:server:*'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-P06", + "timestamp": "2026-04-05T20:40:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_p06.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,250 @@ "proto": "1" } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -112,16 +337,702 @@ 1 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-PF01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-PF01.hujson index 45e1de44..395b324e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-PF01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-PF01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-PF01", + "timestamp": "2026-04-05T20:40:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_pf01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,268 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +357,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-PF02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-PF02.hujson index 15af6346..9ee3386a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-PF02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-PF02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:80-443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-PF02", + "timestamp": "2026-04-05T20:41:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_pf02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,268 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +357,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-PF03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-PF03.hujson index 8be133c8..e03b7d78 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-PF03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-PF03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22,80,443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-PF03", + "timestamp": "2026-04-05T20:41:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_pf03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,324 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -134,16 +441,161 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-PF04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-PF04.hujson index 30dd8f8b..d8582e64 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-PF04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-PF04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:*'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-PF04", + "timestamp": "2026-04-05T20:41:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_pf04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,268 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +357,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-PF05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-PF05.hujson index e2997c4f..bf7e8e8f 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-PF05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-PF05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:1-65535'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-PF05", + "timestamp": "2026-04-05T20:42:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_pf05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,268 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 1, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 1, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 1, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 1, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +357,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 1, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 1, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R01.hujson index fadfed48..3252a0d4 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R01.hujson @@ -1,13 +1,16 @@ // ACL-R01 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:prod'] dst=['tag:server:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-R01", + "timestamp": "2026-04-05T20:42:37Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r01.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,328 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -139,16 +450,170 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R02.hujson index 97414726..c1701481 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R02.hujson @@ -1,13 +1,16 @@ // ACL-R02 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-R02", + "timestamp": "2026-04-05T20:42:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r02.json", "full_policy": { "groups": { "group:admins": [ @@ -78,17 +81,287 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -114,7 +387,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -140,16 +473,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R03.hujson index 5b5553ea..4a2441fc 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R03.hujson @@ -1,13 +1,16 @@ // ACL-R03 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:client'] dst=['tag:server:80'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-R03", + "timestamp": "2026-04-05T20:43:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r03.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -131,16 +410,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R04.hujson index 2c8a35c4..6d1bc052 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R04.hujson @@ -1,13 +1,16 @@ // ACL-R04 // -// ACLs: +// ACLs: 2 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['group:admins'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-R04", + "timestamp": "2026-04-05T20:43:39Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r04.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,312 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -139,16 +434,184 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R05.hujson index 0180b71e..c535c84b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R05.hujson @@ -1,13 +1,16 @@ // ACL-R05 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['*:*'] // accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-R05", + "timestamp": "2026-04-05T20:44:00Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r05.json", "full_policy": { "groups": { "group:admins": [ @@ -78,6 +81,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -85,93 +336,15 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -206,15 +379,1915 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -227,15 +2300,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -248,15 +2670,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -269,7 +3040,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R06.hujson index 687c550a..58b1621e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R06.hujson @@ -1,14 +1,17 @@ // ACL-R06 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:prod'] dst=['tag:server:80'] // accept: src=['group:admins'] dst=['tag:server:443'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-R06", + "timestamp": "2026-04-05T20:44:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r06.json", "full_policy": { "groups": { "group:admins": [ @@ -88,20 +91,372 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -171,16 +526,221 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R07.hujson index 74340240..03048bd8 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R07.hujson @@ -1,14 +1,17 @@ // ACL-R07 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['autogroup:member'] dst=['tag:prod:5432'] // accept: src=['*'] dst=['autogroup:self:*'] // -// Expected: Rules on tagged-prod, tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 6 of 8 { "test_id": "ACL-R07", + "timestamp": "2026-04-05T20:44:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r07.json", "full_policy": { "groups": { "group:admins": [ @@ -88,17 +91,428 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -128,7 +542,95 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -154,7 +656,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -180,7 +742,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -206,7 +826,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -232,7 +910,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R08.hujson index 78dee1a5..59d72d28 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R08.hujson @@ -1,14 +1,17 @@ // ACL-R08 // -// ACLs: +// ACLs: 3 rules // accept: src=['tag:client'] dst=['tag:server:22'] // accept: src=['tag:server'] dst=['tag:prod:5432'] // accept: src=['tag:prod'] dst=['tag:client:80'] // -// Expected: Rules on tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-R08", + "timestamp": "2026-04-05T20:45:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r08.json", "full_policy": { "groups": { "group:admins": [ @@ -88,14 +91,292 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { "packet_filter_rules": [ @@ -121,7 +402,82 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -147,7 +503,82 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -173,16 +604,148 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R09.hujson index a9b0c85a..41e3db01 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R09.hujson @@ -1,13 +1,16 @@ // ACL-R09 // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:member'] dst=['autogroup:self:*'] // accept: src=['autogroup:member'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-R09", + "timestamp": "2026-04-05T20:45:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r09.json", "full_policy": { "groups": { "group:admins": [ @@ -78,20 +81,392 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -121,7 +496,95 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -147,7 +610,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -173,7 +694,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -199,7 +778,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-R10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-R10.hujson index e738dded..6f51bb0a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-R10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-R10.hujson @@ -1,13 +1,16 @@ // ACL-R10 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:*'] // accept: src=['*'] dst=['autogroup:tagged:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-R10", + "timestamp": "2026-04-05T20:45:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_r10.json", "full_policy": { "groups": { "group:admins": [ @@ -78,6 +81,234 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -85,12 +316,98 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -98,24 +415,847 @@ "Last": 65535 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -135,15 +1275,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -163,15 +1651,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -191,15 +2025,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -219,7 +2399,347 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -245,7 +2765,292 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -271,7 +3076,292 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -297,7 +3387,292 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS01.hujson index c92265ba..8b1a1c4e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member', 'group:admins', 'group:developers', 'kratail2tid@passkey', '100.90.199.68'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-RS01", + "timestamp": "2026-04-05T20:46:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs01.json", "full_policy": { "groups": { "group:admins": [ @@ -71,20 +74,260 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -114,16 +357,209 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS02.hujson index a0fb7532..d23ba64f 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:server', 'webserver', '100.108.74.26'] dst=['tag:client:22'] // -// Expected: Rules on tagged-client +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-RS02", + "timestamp": "2026-04-05T20:46:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs02.json", "full_policy": { "groups": { "group:admins": [ @@ -69,14 +72,204 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { "packet_filter_rules": [ @@ -102,22 +295,197 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS03.hujson index 162d2e2d..93589889 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:prod', 'prodbox', '100.103.8.15'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-RS03", + "timestamp": "2026-04-05T20:46:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs03.json", "full_policy": { "groups": { "group:admins": [ @@ -69,20 +72,268 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -108,16 +359,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS04.hujson index 3dddb2bb..6d11ecba 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:tagged', 'tag:server', 'tag:client', 'tag:prod', 'tag:router', 'tag:exit'] dst=['autogroup:member:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-RS04", + "timestamp": "2026-04-05T20:47:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs04.json", "full_policy": { "groups": { "group:admins": [ @@ -72,38 +75,741 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -122,22 +828,359 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -156,22 +1199,359 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -190,7 +1570,322 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS05.hujson index 232d4ec4..9df5f1df 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22', 'webserver:22', '100.108.74.26:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-RS05", + "timestamp": "2026-04-05T20:47:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs05.json", "full_policy": { "groups": { "group:admins": [ @@ -69,20 +72,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -122,16 +401,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS06.hujson index ed2acd21..5288021a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['group:admins:22', 'group:developers:22', 'kratail2tid@passkey:22', '100.90.199.68:22'] // -// Expected: Rules on user-kris, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-RS06", + "timestamp": "2026-04-05T20:47:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs06.json", "full_policy": { "groups": { "group:admins": [ @@ -70,23 +73,401 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -112,10 +493,87 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -176,7 +634,100 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-RS07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-RS07.hujson index 7b5a9b7a..a83b87e6 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-RS07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-RS07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22', 'tag:server:80', 'tag:server:443', 'webserver:8080', '100.108.74.26:9000'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-RS07", + "timestamp": "2026-04-05T20:48:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_rs07.json", "full_policy": { "groups": { "group:admins": [ @@ -71,20 +74,352 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -152,16 +487,175 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S01.hujson index 36665a68..3879f569 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['autogroup:self:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-S01", + "timestamp": "2026-04-05T20:48:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,364 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,7 +453,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -135,7 +521,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -161,7 +589,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S02.hujson index 66ae1ac5..dd6e1bdf 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins'] dst=['autogroup:self:*'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-S02", + "timestamp": "2026-04-05T20:48:52Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,29 +70,320 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -115,7 +409,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S03.hujson index 1cf69548..e154976b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:developers'] dst=['autogroup:self:22'] // -// Expected: Rules on user-kris, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-S03", + "timestamp": "2026-04-05T20:49:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,320 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,10 +409,71 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -138,7 +499,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S04.hujson index cff7723e..dfd0d673 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S04.hujson @@ -1,12 +1,12 @@ // ACL-S04 // // ACL: accept: src=['autogroup:tagged'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-S04", + "timestamp": "2026-04-05T20:49:34Z", "error": true, "input": { + "policy_file": "acl_policies/acl_s04.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S05.hujson index 8ecb2583..a6db527d 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S05.hujson @@ -1,12 +1,12 @@ // ACL-S05 // // ACL: accept: src=['100.90.199.68'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-S05", + "timestamp": "2026-04-05T20:49:34Z", "error": true, "input": { + "policy_file": "acl_policies/acl_s05.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S06.hujson index aca62f59..f50c27c2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S06.hujson @@ -1,12 +1,12 @@ // ACL-S06 // // ACL: accept: src=['webserver'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-S06", + "timestamp": "2026-04-05T20:49:35Z", "error": true, "input": { + "policy_file": "acl_policies/acl_s06.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S07.hujson index 1b1c26c5..c24a9e54 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S07.hujson @@ -1,13 +1,16 @@ // ACL-S07 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:*'] // accept: src=['*'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-S07", + "timestamp": "2026-04-05T20:49:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s07.json", "full_policy": { "groups": { "group:admins": [ @@ -78,28 +81,316 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -119,7 +410,645 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -145,7 +1074,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -171,7 +1158,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -197,7 +1242,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S08.hujson index 074352f3..bcbdb4a1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:*', 'autogroup:member:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-S08", + "timestamp": "2026-04-05T20:49:56Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s08.json", "full_policy": { "groups": { "group:admins": [ @@ -68,23 +71,816 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -112,9 +908,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -134,7 +936,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -162,9 +1326,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -184,7 +1354,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -212,9 +1744,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -234,7 +1772,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S09.hujson index 7f171568..cb46a298 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S09.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:22', 'autogroup:self:80'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-S09", + "timestamp": "2026-04-05T20:50:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s09.json", "full_policy": { "groups": { "group:admins": [ @@ -68,23 +71,448 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -124,7 +552,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -164,7 +648,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -204,7 +744,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-S10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-S10.hujson index 112e1911..3cd8375e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-S10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-S10.hujson @@ -1,13 +1,16 @@ // ACL-S10 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:22'] // accept: src=['*'] dst=['autogroup:self:80'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-S10", + "timestamp": "2026-04-05T20:50:37Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_s10.json", "full_policy": { "groups": { "group:admins": [ @@ -78,23 +81,448 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -134,7 +562,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -174,7 +658,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -214,7 +754,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF01.hujson index f7eabc40..185d2712 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['autogroup:self:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-SF01", + "timestamp": "2026-04-05T20:50:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,364 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,7 +453,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -135,7 +521,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -161,7 +589,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF02.hujson index a07218be..2e9d55fb 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:developers'] dst=['autogroup:self:*'] // -// Expected: Rules on user-kris, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-SF02", + "timestamp": "2026-04-05T20:51:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,320 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,10 +409,71 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -138,7 +499,49 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF03.hujson index 744aca19..6129af6c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF03.hujson @@ -1,12 +1,12 @@ // ACL-SF03 // // ACL: accept: src=['tag:client'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-SF03", + "timestamp": "2026-04-05T20:51:40Z", "error": true, "input": { + "policy_file": "acl_policies/acl_sf03.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF04.hujson index 5c1e3703..74b265c1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF04.hujson @@ -1,12 +1,12 @@ // ACL-SF04 // // ACL: accept: src=['webserver'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-SF04", + "timestamp": "2026-04-05T20:51:40Z", "error": true, "input": { + "policy_file": "acl_policies/acl_sf04.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF05.hujson index f4f4b21c..9d7a9c63 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF05.hujson @@ -1,12 +1,12 @@ // ACL-SF05 // // ACL: accept: src=['100.90.199.68'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-SF05", + "timestamp": "2026-04-05T20:51:40Z", "error": true, "input": { + "policy_file": "acl_policies/acl_sf05.json", "full_policy": { "groups": { "group:admins": [ @@ -69,6 +69,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF06.hujson index 8b40565f..a093440e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:*', 'tag:server:22'] // -// Expected: Rules on tagged-server, user-kris, user-mon, user1 +// Nodes with filter rules: 5 of 8 { "test_id": "ACL-SF06", + "timestamp": "2026-04-05T20:51:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf06.json", "full_policy": { "groups": { "group:admins": [ @@ -68,28 +71,614 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -109,7 +698,347 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -135,7 +1064,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -161,7 +1148,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -187,7 +1232,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF07.hujson index c0504e03..b3622689 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:*', 'group:admins:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-SF07", + "timestamp": "2026-04-05T20:52:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf07.json", "full_policy": { "groups": { "group:admins": [ @@ -68,23 +71,630 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -110,7 +720,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -136,15 +802,77 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -186,7 +914,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF08.hujson index f455bcba..35e3e1e2 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF08.hujson @@ -1,12 +1,12 @@ // ACL-SF08 // // ACL: accept: src=['autogroup:member', 'tag:client'] dst=['autogroup:self:*'] -// -// Expected: Error — autogroup:self can only be used with users, groups, or supported autogroups { "test_id": "ACL-SF08", + "timestamp": "2026-04-05T20:52:22Z", "error": true, "input": { + "policy_file": "acl_policies/acl_sf08.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +70,8 @@ } ] }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF09.hujson index cf60379b..e09c5905 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF09.hujson @@ -1,13 +1,16 @@ // ACL-SF09 // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['autogroup:self:22'] // accept: src=['*'] dst=['autogroup:self:80'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-SF09", + "timestamp": "2026-04-05T20:52:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf09.json", "full_policy": { "groups": { "group:admins": [ @@ -78,23 +81,448 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -134,7 +562,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -174,7 +658,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -214,7 +754,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF10.hujson index 24f061b8..5b74076a 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF10.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:22', 'autogroup:self:80'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-SF10", + "timestamp": "2026-04-05T20:52:44Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf10.json", "full_policy": { "groups": { "group:admins": [ @@ -68,23 +71,448 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -124,7 +552,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -164,7 +648,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -204,7 +744,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF11.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF11.hujson index afc9409c..a3e10587 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF11.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF11.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['autogroup:self:22', 'kratail2tid@passkey:22'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-SF11", + "timestamp": "2026-04-05T20:53:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf11.json", "full_policy": { "groups": { "group:admins": [ @@ -68,23 +71,630 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -110,7 +720,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -136,15 +802,77 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -186,7 +914,369 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF12.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF12.hujson index 1bd7e4d8..fb7ae3fd 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF12.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF12.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kristoffer@dalby.cc'] dst=['autogroup:self:*'] // -// Expected: Rules on user-kris +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-SF12", + "timestamp": "2026-04-05T20:53:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf12.json", "full_policy": { "groups": { "group:admins": [ @@ -67,23 +70,276 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -109,13 +365,93 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-SF13.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-SF13.hujson index 17d36183..f421321c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-SF13.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-SF13.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:monitors'] dst=['autogroup:self:22'] // -// Expected: Rules on user-mon +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-SF13", + "timestamp": "2026-04-05T20:53:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_sf13.json", "full_policy": { "groups": { "group:admins": [ @@ -67,26 +70,298 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -112,10 +387,71 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T01.hujson index 879f1006..1906e536 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T01", + "timestamp": "2026-04-05T20:54:07Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,268 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +357,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T02.hujson index e95b001a..9020b7a7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-T02", + "timestamp": "2026-04-05T20:54:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -87,7 +338,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -106,7 +415,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -125,7 +492,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -144,7 +846,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -163,7 +918,60 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -182,7 +990,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -201,7 +1060,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -220,7 +1130,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T03.hujson index 072e28a7..893ae4e9 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client', 'tag:prod'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T03", + "timestamp": "2026-04-05T20:54:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t03.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,288 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +380,150 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T04.hujson index d35e77fc..0f7d5f5e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T04", + "timestamp": "2026-04-05T20:55:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -108,16 +333,693 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T05.hujson index 5d758cc0..17f303d1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['tag:server:22', 'tag:prod:5432', 'tag:router:80'] // -// Expected: Rules on subnet-router, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "ACL-T05", + "timestamp": "2026-04-05T20:55:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t05.json", "full_policy": { "groups": { "group:admins": [ @@ -69,11 +72,347 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -99,10 +438,189 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -128,7 +646,67 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -154,16 +732,133 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T06.hujson index 181d90ed..dbc3f8e1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['autogroup:tagged'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T06", + "timestamp": "2026-04-05T20:55:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,32 +70,249 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -111,19 +331,651 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T07.hujson index 179d98da..56ff188b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:server'] dst=['tag:prod:5432'] // -// Expected: Rules on tagged-prod +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T07", + "timestamp": "2026-04-05T20:56:12Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t07.json", "full_policy": { "groups": { "group:admins": [ @@ -67,17 +70,228 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -103,19 +317,173 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T08.hujson index 2ab2e0e7..f8bd534e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client', 'tag:server', 'tag:prod'] dst=['tag:router:*'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T08", + "timestamp": "2026-04-05T20:56:33Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t08.json", "full_policy": { "groups": { "group:admins": [ @@ -69,11 +72,299 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -103,25 +394,433 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.108.74.26", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T09.hujson index 5f9e088a..0692e7f1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T09.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['tag:client'] dst=['100.108.74.26:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T09", + "timestamp": "2026-04-05T20:56:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t09.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -99,16 +336,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-T10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-T10.hujson index 527375ee..433397d7 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-T10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-T10.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.83.200.69'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-T10", + "timestamp": "2026-04-05T20:57:15Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_t10.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,266 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -105,16 +354,132 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U01.hujson index a4f8211f..2d6dc5e5 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-U01", + "timestamp": "2026-04-05T20:57:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -87,7 +338,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -106,7 +413,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -125,7 +488,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -144,7 +558,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -163,7 +628,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -182,7 +698,56 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -201,7 +766,56 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -220,7 +834,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U02.hujson index aa21299e..3ee7585b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['kratail2tid@passkey:*'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U02", + "timestamp": "2026-04-05T20:57:56Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,37 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -117,7 +333,681 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U03.hujson index a0aabdd7..5714534b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-U03", + "timestamp": "2026-04-05T20:58:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -87,7 +338,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -106,7 +413,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -125,7 +488,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -144,7 +558,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -163,7 +628,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -182,7 +698,56 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -201,7 +766,56 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -220,7 +834,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U04.hujson index d6dd1db7..82705717 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['group:admins:*'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U04", + "timestamp": "2026-04-05T20:58:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,37 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -117,7 +333,681 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U05.hujson index 515e939c..56d325f4 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:developers'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U05", + "timestamp": "2026-04-05T20:58:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,256 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -108,16 +347,178 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U06.hujson index 3d79b8a7..32a1f21f 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U06", + "timestamp": "2026-04-05T20:59:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,252 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +341,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U07.hujson index 046e727a..9b123a40 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kristoffer@dalby.cc'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-U07", + "timestamp": "2026-04-05T20:59:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u07.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -87,7 +338,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -106,7 +413,63 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -125,7 +488,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -144,7 +558,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -163,7 +628,58 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -182,7 +698,342 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -201,7 +1052,56 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -220,7 +1120,56 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U08.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U08.hujson index 7e88f739..cb27cc5b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U08.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U08.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins'] dst=['tag:server:22', 'tag:prod:5432'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "ACL-U08", + "timestamp": "2026-04-05T21:00:01Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u08.json", "full_policy": { "groups": { "group:admins": [ @@ -68,17 +71,256 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -104,7 +346,65 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -130,16 +430,162 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U09.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U09.hujson index 1b362a22..86c5d35e 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U09.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U09.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:monitors'] dst=['tag:server:*'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U09", + "timestamp": "2026-04-05T21:00:22Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u09.json", "full_policy": { "groups": { "group:admins": [ @@ -67,20 +70,252 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -106,16 +341,147 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U10.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U10.hujson index a76f1a78..abcc96cb 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U10.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U10.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:empty'] dst=['*:*'] // -// Expected: No filter rules +// Nodes with filter rules: 0 of 8 { "test_id": "ACL-U10", + "timestamp": "2026-04-05T21:00:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u10.json", "full_policy": { "groups": { "group:admins": [ @@ -67,32 +70,296 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U11.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U11.hujson index 91db1baf..fa19eece 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U11.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U11.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['kratail2tid@passkey', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U11", + "timestamp": "2026-04-05T21:01:04Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u11.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,272 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +364,164 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-U12.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-U12.hujson index fba2a8dc..8fd4b2ee 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-U12.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-U12.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['group:admins', 'tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-U12", + "timestamp": "2026-04-05T21:01:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_u12.json", "full_policy": { "groups": { "group:admins": [ @@ -68,20 +71,272 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -109,16 +364,164 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W01.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W01.hujson index eb344da3..88be3c2c 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W01.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W01.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-W01", + "timestamp": "2026-04-05T21:01:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w01.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -74,9 +325,15 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -89,15 +346,367 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -110,15 +719,366 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -131,15 +1091,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -152,15 +1461,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -173,15 +1831,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -194,15 +2201,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -215,15 +2571,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +2941,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W02.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W02.hujson index 54cbacd4..d76a8fd1 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W02.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W02.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.90.199.68'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-W02", + "timestamp": "2026-04-05T21:02:07Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w02.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -86,7 +337,62 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -104,7 +410,62 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -122,7 +483,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -140,7 +551,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -158,7 +619,57 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -176,7 +687,55 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -194,7 +753,55 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -212,7 +819,341 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W03.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W03.hujson index 434855e2..cfe6f28b 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W03.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W03.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['100.64.0.0/16'] dst=['*:*'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-W03", + "timestamp": "2026-04-05T21:02:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w03.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,98 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { @@ -86,7 +181,48 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -104,7 +240,48 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { "packet_filter_rules": [ @@ -122,7 +299,43 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -140,7 +353,43 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { "packet_filter_rules": [ @@ -158,7 +407,43 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -176,7 +461,41 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { "packet_filter_rules": [ @@ -194,7 +513,41 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { "packet_filter_rules": [ @@ -212,7 +565,41 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W04.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W04.hujson index 01d4c30e..59c0bd05 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W04.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W04.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.108.74.26:*'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "ACL-W04", + "timestamp": "2026-04-05T21:02:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w04.json", "full_policy": { "groups": { "group:admins": [ @@ -67,28 +70,250 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -101,16 +326,672 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W05.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W05.hujson index 94723e42..d0c8022d 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W05.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W05.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.64.0.0/12:*'] // -// Expected: No filter rules +// Nodes with filter rules: 1 of 8 { "test_id": "ACL-W05", + "timestamp": "2026-04-05T21:03:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w05.json", "full_policy": { "groups": { "group:admins": [ @@ -67,32 +70,612 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W06.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W06.hujson index 25a01de7..98c3a8a8 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W06.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W06.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:80'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-W06", + "timestamp": "2026-04-05T21:03:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w06.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -74,9 +325,15 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -89,15 +346,367 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -110,15 +719,366 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -131,15 +1091,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -152,15 +1461,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -173,15 +1831,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -194,15 +2201,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -215,15 +2571,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +2941,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/acl_results/ACL-W07.hujson b/hscontrol/policy/v2/testdata/acl_results/ACL-W07.hujson index 113767e8..e290f641 100644 --- a/hscontrol/policy/v2/testdata/acl_results/ACL-W07.hujson +++ b/hscontrol/policy/v2/testdata/acl_results/ACL-W07.hujson @@ -2,10 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:443'] // -// Expected: Rules on 8 of 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "ACL-W07", + "timestamp": "2026-04-05T21:03:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "acl_policies/acl_w07.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +70,254 @@ ] } ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + } } }, "captures": { @@ -74,9 +325,15 @@ "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -89,15 +346,367 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -110,15 +719,366 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -131,15 +1091,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -152,15 +1461,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -173,15 +1831,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -194,15 +2201,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -215,15 +2571,364 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +2941,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-A1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-A1.hujson index 7f297c3b..6ea14e9f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-A1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-A1.hujson @@ -1,11 +1,15 @@ // GRANT-A1 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/basic} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/basic'] // -// Expected: Rules on 7 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-A1", + "timestamp": "2026-04-05T21:06:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_a1.json", "full_policy": { "groups": { "group:admins": [ @@ -71,76 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/basic": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -157,15 +378,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -182,15 +1226,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -207,18 +2070,1682 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } }, "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -235,15 +3762,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -260,15 +4608,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -285,15 +5456,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -310,7 +6304,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/basic", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/basic": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-A2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-A2.hujson index 9f4d4a79..386068e8 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-A2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-A2.hujson @@ -1,12 +1,14 @@ // GRANT-A2 // -// Grant: src=['*'] dst=['*'] app={https://tailscale.com/cap/ingress} -// -// Expected: Error (HTTP 400) — capability name must have the form {domain}/{path} +// Grants: 1 +// src=['*'] dst=['*'] app=['https://tailscale.com/cap/ingress'] { "test_id": "GRANT-A2", + "description": "", + "timestamp": "2026-04-05T21:06:24Z", "error": true, "input": { + "policy_file": "grant_policies/grant_a2.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "https://tailscale.com/cap/ingress": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "capability name must have the form {domain}/{path}" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-A3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-A3.hujson index 97736e01..2fb1aa12 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-A3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-A3.hujson @@ -1,11 +1,15 @@ // GRANT-A3 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/webui} +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/webui'] // -// Expected: Rules on 7 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-A3", + "timestamp": "2026-04-05T21:06:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_a3.json", "full_policy": { "groups": { "group:admins": [ @@ -71,76 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -157,15 +378,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -182,15 +1226,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -207,18 +2070,1682 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -235,15 +3762,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -260,15 +4608,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -285,15 +5456,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -310,7 +6304,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-A4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-A4.hujson index 769dedb0..0b76d50b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-A4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-A4.hujson @@ -1,11 +1,15 @@ // GRANT-A4 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/relay} +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/relay'] // -// Expected: Rules on 7 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-A4", + "timestamp": "2026-04-05T21:06:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_a4.json", "full_policy": { "groups": { "group:admins": [ @@ -71,76 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -159,9 +380,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -176,15 +403,915 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -203,9 +1330,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -220,15 +1353,911 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -247,9 +2276,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -264,18 +2299,1861 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -294,9 +4172,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -311,15 +4195,913 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -338,9 +5120,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -355,15 +5143,915 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -382,9 +6070,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -399,15 +6093,915 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -426,9 +7020,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -443,7 +7043,897 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-A5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-A5.hujson index acdcc81f..dbf49e74 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-A5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-A5.hujson @@ -1,12 +1,14 @@ // GRANT-A5 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/relay-target} -// -// Expected: Error (HTTP 400) — capability name must not be in the tailscale.com domain +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/relay-target'] { "test_id": "GRANT-A5", + "description": "", + "timestamp": "2026-04-05T21:07:10Z", "error": true, "input": { + "policy_file": "grant_policies/grant_a5.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/relay-target": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "capability name must not be in the tailscale.com domain" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-A6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-A6.hujson index 61fa8771..5e43a780 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-A6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-A6.hujson @@ -1,11 +1,15 @@ // GRANT-A6 // -// Grant: src=['autogroup:member'] dst=['autogroup:self'] app={tailscale.com/cap/drive} +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:self'] app=['tailscale.com/cap/drive'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-A6", + "timestamp": "2026-04-05T21:07:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_a6.json", "full_policy": { "groups": { "group:admins": [ @@ -76,85 +80,490 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:self" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -197,9 +606,179 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -242,9 +821,179 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -287,7 +1036,173 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-B1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-B1.hujson index 87b04c22..d269d9f2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-B1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-B1.hujson @@ -1,11 +1,15 @@ // GRANT-B1 // -// Grant: src=['*'] dst=['tag:server'] app={tailscale.com/cap/kubernetes} +// Grants: 1 +// src=['*'] dst=['tag:server'] app=['tailscale.com/cap/kubernetes'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-B1", + "timestamp": "2026-04-05T21:07:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_b1.json", "full_policy": { "groups": { "group:admins": [ @@ -77,88 +81,841 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -181,16 +938,1271 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-B2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-B2.hujson index 501330e7..17885b18 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-B2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-B2.hujson @@ -1,11 +1,15 @@ // GRANT-B2 // -// Grant: src=['*'] dst=['tag:server'] app={tailscale.com/cap/kubernetes} +// Grants: 1 +// src=['*'] dst=['tag:server'] app=['tailscale.com/cap/kubernetes'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-B2", + "timestamp": "2026-04-05T21:07:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_b2.json", "full_policy": { "groups": { "group:admins": [ @@ -84,88 +88,848 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -195,16 +959,1341 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "readers" + ] + } + }, + { + "impersonate": { + "groups": [ + "writers" + ] + } + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-B3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-B3.hujson index 2be580ad..141bf923 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-B3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-B3.hujson @@ -1,11 +1,15 @@ // GRANT-B3 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/drive} +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/drive'] // -// Expected: Rules on 7 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-B3", + "timestamp": "2026-04-05T21:08:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_b3.json", "full_policy": { "groups": { "group:admins": [ @@ -76,76 +80,298 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -169,9 +395,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -186,15 +418,965 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -218,9 +1400,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -235,15 +1423,961 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -267,9 +2401,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -284,18 +2424,1966 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -319,9 +4407,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -336,15 +4430,963 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -368,9 +5410,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -385,15 +5433,965 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -417,9 +6415,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -434,15 +6438,965 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -466,9 +7420,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -483,7 +7443,947 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-B4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-B4.hujson index 60c27ab9..ddb5d3b9 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-B4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-B4.hujson @@ -1,11 +1,15 @@ // GRANT-B4 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/drive} +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/drive'] // -// Expected: Rules on 7 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-B4", + "timestamp": "2026-04-05T21:08:39Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_b4.json", "full_policy": { "groups": { "group:admins": [ @@ -82,76 +86,304 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -181,9 +413,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -198,15 +436,1025 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -236,9 +1484,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -253,15 +1507,1021 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -291,9 +2551,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -308,18 +2574,2092 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -349,9 +4689,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -366,15 +4712,1023 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -404,9 +5758,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -421,15 +5781,1025 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -459,9 +6829,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -476,15 +6852,1025 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -514,9 +7900,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -531,7 +7923,1007 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "docs" + ], + "access": "ro" + }, + { + "shares": [ + "photos" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-B5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-B5.hujson index cc9d1731..3ad6e52c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-B5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-B5.hujson @@ -1,11 +1,15 @@ // GRANT-B5 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/drive} +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/drive'] // -// Expected: Rules on 7 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-B5", + "timestamp": "2026-04-05T21:09:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_b5.json", "full_policy": { "groups": { "group:admins": [ @@ -76,76 +80,298 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { - "hostname": "unknown", - "tags": [], - "ipv4": "unknown", - "ipv6": "unknown" + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -169,9 +395,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -186,15 +418,965 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -218,9 +1400,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -235,15 +1423,961 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -267,9 +2401,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -284,18 +2424,1966 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -319,9 +4407,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -336,15 +4430,963 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -368,9 +5410,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -385,15 +5433,965 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -417,9 +6415,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -434,15 +6438,965 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -466,9 +7420,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -483,7 +7443,947 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-C1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-C1.hujson index 6d41beab..ad0440cd 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-C1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-C1.hujson @@ -1,11 +1,15 @@ // GRANT-C1 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-C1", + "timestamp": "2026-04-05T21:09:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_c1.json", "full_policy": { "groups": { "group:admins": [ @@ -71,78 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -159,15 +378,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -184,15 +1226,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -209,15 +2070,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -234,15 +2916,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -259,15 +3762,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -284,15 +4608,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -309,15 +5456,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -334,7 +6304,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-C2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-C2.hujson index 469b1df3..90a32115 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-C2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-C2.hujson @@ -1,11 +1,15 @@ // GRANT-C2 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-C2", + "timestamp": "2026-04-05T21:09:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_c2.json", "full_policy": { "groups": { "group:admins": [ @@ -73,78 +77,295 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -163,15 +384,858 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -190,15 +1254,854 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -217,15 +2120,856 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -244,15 +2988,856 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -271,15 +3856,856 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -298,15 +4724,858 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -325,15 +5594,858 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -352,7 +6464,840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-C3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-C3.hujson index b0329793..3de33c51 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-C3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-C3.hujson @@ -1,11 +1,15 @@ // GRANT-C3 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-C3", + "timestamp": "2026-04-05T21:10:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_c3.json", "full_policy": { "groups": { "group:admins": [ @@ -76,78 +80,298 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -169,15 +393,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -199,15 +1296,884 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -229,15 +2195,886 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -259,15 +3096,886 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -289,15 +3997,886 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -319,15 +4898,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -349,15 +5801,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -379,7 +6704,870 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + }, + { + "role": "viewer" + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-C4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-C4.hujson index 30531edf..15b0cfe8 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-C4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-C4.hujson @@ -1,11 +1,15 @@ // GRANT-C4 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/one,example.com/cap/two} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/one', 'example.com/cap/two'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-C4", + "timestamp": "2026-04-05T21:10:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_c4.json", "full_policy": { "groups": { "group:admins": [ @@ -76,78 +80,298 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -169,15 +393,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -199,15 +1304,892 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -229,15 +2211,894 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -259,15 +3120,894 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -289,15 +4029,894 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -319,15 +4938,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -349,15 +5849,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -379,7 +6760,878 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "level": "high" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "level": "high" + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-C5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-C5.hujson index 10316e7a..5118be34 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-C5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-C5.hujson @@ -1,11 +1,15 @@ // GRANT-C5 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/complex} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/complex'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-C5", + "timestamp": "2026-04-05T21:10:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_c5.json", "full_policy": { "groups": { "group:admins": [ @@ -77,78 +81,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -171,15 +396,898 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -202,15 +1310,894 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -233,15 +2220,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -264,15 +3132,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -295,15 +4044,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -326,15 +4956,898 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -357,15 +5870,898 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -388,7 +6784,880 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/complex", + "Values": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/complex": [ + { + "nested": { + "deep": { + "value": 42 + } + } + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-C6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-C6.hujson index 6ea8c916..4e64030a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-C6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-C6.hujson @@ -1,11 +1,15 @@ // GRANT-C6 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/array} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/array'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-C6", + "timestamp": "2026-04-05T21:11:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_c6.json", "full_policy": { "groups": { "group:admins": [ @@ -77,78 +81,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -171,15 +396,898 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -202,15 +1310,894 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -233,15 +2220,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -264,15 +3132,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -295,15 +4044,896 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -326,15 +4956,898 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -357,15 +5870,898 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -388,7 +6784,880 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/array", + "Values": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/array": [ + { + "items": [ + 1, + 2, + 3 + ] + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D1.hujson index 79a54857..be5da9a2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D1.hujson @@ -1,11 +1,15 @@ // GRANT-D1 // -// Grant: src=['autogroup:member'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['autogroup:member'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D1", + "timestamp": "2026-04-05T21:11:39Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d1.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,419 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,16 +512,717 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D2.hujson index 76163383..1f13ea22 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D2.hujson @@ -1,11 +1,15 @@ // GRANT-D2 // -// Grant: src=['autogroup:tagged'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['autogroup:tagged'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D2", + "timestamp": "2026-04-05T21:12:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d2.json", "full_policy": { "groups": { "group:admins": [ @@ -71,97 +75,834 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:tagged" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "CapGrant": [ { @@ -177,16 +918,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D3.hujson index cdea6a7d..dcd6f9c3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D3.hujson @@ -1,11 +1,15 @@ // GRANT-D3 // -// Grant: src=['group:admins'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['group:admins'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D3", + "timestamp": "2026-04-05T21:12:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d3.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,419 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -169,16 +508,443 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D4.hujson index 444b1b09..83f3e511 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D4.hujson @@ -1,11 +1,15 @@ // GRANT-D4 // -// Grant: src=['kratail2tid@passkey'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['kratail2tid@passkey'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D4", + "timestamp": "2026-04-05T21:12:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d4.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,419 @@ } ] }, + "grants_section": [ + { + "src": [ + "kratail2tid@passkey" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -169,16 +508,443 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D5.hujson index e4f07bbc..c070a935 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D5.hujson @@ -1,11 +1,15 @@ // GRANT-D5 // -// Grant: src=['tag:prod'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['tag:prod'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D5", + "timestamp": "2026-04-05T21:13:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d5.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,486 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -169,16 +575,380 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D6.hujson index b2917cac..781e1b42 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D6.hujson @@ -1,11 +1,15 @@ // GRANT-D6 // -// Grant: src=['100.90.199.68'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['100.90.199.68'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D6", + "timestamp": "2026-04-05T21:13:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d6.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,419 @@ } ] }, + "grants_section": [ + { + "src": [ + "100.90.199.68" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -168,16 +507,441 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-D7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-D7.hujson index 95d817c5..2e6f5568 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-D7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-D7.hujson @@ -1,11 +1,15 @@ // GRANT-D7 // -// Grant: src=['autogroup:member', 'tag:prod'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['autogroup:member', 'tag:prod'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-D7", + "timestamp": "2026-04-05T21:13:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_d7.json", "full_policy": { "groups": { "group:admins": [ @@ -72,84 +76,487 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -176,16 +583,791 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E1.hujson index f10eae2c..16b32c32 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E1.hujson @@ -1,11 +1,15 @@ // GRANT-E1 // -// Grant: src=['*'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-E1", + "timestamp": "2026-04-05T21:14:15Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e1.json", "full_policy": { "groups": { "group:admins": [ @@ -71,90 +75,835 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -171,16 +920,1211 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E2.hujson index 3b8e5d69..a250d073 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E2.hujson @@ -1,11 +1,15 @@ // GRANT-E2 // -// Grant: src=['*'] dst=['tag:server', 'tag:prod'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['tag:server', 'tag:prod'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-E2", + "timestamp": "2026-04-05T21:14:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e2.json", "full_policy": { "groups": { "group:admins": [ @@ -72,87 +76,901 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server", + "tag:prod" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -169,15 +987,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -194,16 +1833,1409 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E3.hujson index 5c2ec3cd..ae2ebc89 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E3.hujson @@ -1,12 +1,14 @@ // GRANT-E3 // -// Grant: src=['*'] dst=['autogroup:self'] app={tailscale.com/cap/drive} -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] app=['tailscale.com/cap/drive'] { "test_id": "GRANT-E3", + "description": "", + "timestamp": "2026-04-05T21:14:59Z", "error": true, "input": { + "policy_file": "grant_policies/grant_e3.json", "full_policy": { "groups": { "group:admins": [ @@ -77,6 +79,28 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E4.hujson index e17ad9b9..4c518c68 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E4.hujson @@ -1,11 +1,15 @@ // GRANT-E4 // -// Grant: src=['*'] dst=['autogroup:member'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['autogroup:member'] app=['example.com/cap/test'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-E4", + "timestamp": "2026-04-05T21:15:00Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e4.json", "full_policy": { "groups": { "group:admins": [ @@ -71,93 +75,1568 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:member" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -174,15 +1653,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -199,15 +2501,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -224,7 +3349,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E5.hujson index 66a47c6f..cbf8bbbb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E5.hujson @@ -1,11 +1,15 @@ // GRANT-E5 // -// Grant: src=['*'] dst=['autogroup:tagged'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['autogroup:tagged'] app=['example.com/cap/test'] // -// Expected: Rules on exit-node, subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "GRANT-E5", + "timestamp": "2026-04-05T21:15:22Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e5.json", "full_policy": { "groups": { "group:admins": [ @@ -71,78 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:tagged" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -159,15 +378,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -184,15 +1226,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -209,15 +2070,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -234,15 +2916,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -259,16 +3762,2513 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E6.hujson index df9d2e2d..a7a4caf0 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E6.hujson @@ -1,11 +1,15 @@ // GRANT-E6 // -// Grant: src=['*'] dst=['group:admins'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['group:admins'] app=['example.com/cap/test'] // -// Expected: Rules on user1 +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-E6", + "timestamp": "2026-04-05T21:15:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e6.json", "full_policy": { "groups": { "group:admins": [ @@ -71,99 +75,1202 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "group:admins" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -180,7 +1287,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E7.hujson index 8df0e689..adcbacc5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E7.hujson @@ -1,11 +1,15 @@ // GRANT-E7 // -// Grant: src=['*'] dst=['kratail2tid@passkey'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['kratail2tid@passkey'] app=['example.com/cap/test'] // -// Expected: Rules on user1 +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-E7", + "timestamp": "2026-04-05T21:16:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e7.json", "full_policy": { "groups": { "group:admins": [ @@ -71,99 +75,1202 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "kratail2tid@passkey" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -180,7 +1287,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-E8.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-E8.hujson index a09a7523..3edc14de 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-E8.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-E8.hujson @@ -1,11 +1,15 @@ // GRANT-E8 // -// Grant: src=['*'] dst=['100.108.74.26'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['100.108.74.26'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-E8", + "timestamp": "2026-04-05T21:16:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_e8.json", "full_policy": { "groups": { "group:admins": [ @@ -71,90 +75,835 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "100.108.74.26" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -170,16 +919,1203 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-F1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-F1.hujson index d44a2ba3..0f0d41bf 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-F1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-F1.hujson @@ -1,11 +1,15 @@ // GRANT-F1 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:80', 'tcp:443'] app={tailscale.com/cap/kubernetes} +// Grants: 1 +// src=['*'] dst=['tag:server'] app=['tailscale.com/cap/kubernetes'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-F1", + "timestamp": "2026-04-05T21:16:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_f1.json", "full_policy": { "groups": { "group:admins": [ @@ -81,90 +85,1002 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:80", + "tcp:443" + ], + "app": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -203,9 +1119,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -228,16 +1150,1378 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-F2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-F2.hujson index 30d45af2..eb052508 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-F2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-F2.hujson @@ -1,11 +1,15 @@ // GRANT-F2 // -// Grant: src=['autogroup:member'] dst=['tag:server'] ip=['*'] app={example.com/cap/test} +// Grants: 1 +// src=['autogroup:member'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-F2", + "timestamp": "2026-04-05T21:17:12Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_f2.json", "full_policy": { "groups": { "group:admins": [ @@ -76,84 +80,513 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "*" + ], + "app": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -206,16 +639,789 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "role": "admin" + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-F3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-F3.hujson index a52ac522..51701c81 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-F3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-F3.hujson @@ -1,13 +1,16 @@ // GRANT-F3 // -// Grants: -// src=['*'] dst=['tag:server'] ip=['tcp:80', 'tcp:443'] -// src=['*'] dst=['tag:server'] app={tailscale.com/cap/kubernetes} +// Grants: 2 +// src=['*'] dst=['tag:server'] +// src=['*'] dst=['tag:server'] app=['tailscale.com/cap/kubernetes'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-F3", + "timestamp": "2026-04-05T21:17:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_f3.json", "full_policy": { "groups": { "group:admins": [ @@ -91,90 +94,1010 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:80", + "tcp:443" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -213,9 +1136,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -238,16 +1167,1378 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-F4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-F4.hujson index e598deaf..150d801e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-F4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-F4.hujson @@ -1,11 +1,15 @@ // GRANT-F4 // -// Grant: src=['*'] dst=['*'] ip=['tcp:443'] app={tailscale.com/cap/drive,example.com/cap/extra} +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/drive', 'example.com/cap/extra'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-F4", + "timestamp": "2026-04-05T21:17:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_f4.json", "full_policy": { "groups": { "group:admins": [ @@ -84,78 +88,326 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "tcp:443" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "example.com/cap/extra": [ + { + "mode": "full" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -173,9 +425,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -204,9 +462,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -221,15 +485,1103 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -247,9 +1599,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -278,9 +1636,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -295,15 +1659,1103 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -321,9 +2773,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -352,9 +2810,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -369,15 +2833,1105 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -395,9 +3949,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -426,9 +3986,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -443,15 +4009,1105 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -469,9 +5125,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -500,9 +5162,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -517,15 +5185,1105 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -543,9 +6301,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -574,9 +6338,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -591,15 +6361,1107 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -617,9 +7479,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -648,9 +7516,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -665,15 +7539,1107 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -691,9 +8657,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -722,9 +8694,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -739,7 +8717,1089 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/extra", + "Values": [ + { + "mode": "full" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/extra": [ + { + "mode": "full" + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-G1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-G1.hujson index fa1fe2f4..aee30303 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-G1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-G1.hujson @@ -1,13 +1,16 @@ // GRANT-G1 // -// Grants: -// src=['*'] dst=['tag:server'] app={example.com/cap/one} -// src=['*'] dst=['tag:server'] app={example.com/cap/two} +// Grants: 2 +// src=['*'] dst=['tag:server'] app=['example.com/cap/one'] +// src=['*'] dst=['tag:server'] app=['example.com/cap/two'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-G1", + "timestamp": "2026-04-05T21:18:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_g1.json", "full_policy": { "groups": { "group:admins": [ @@ -86,90 +89,848 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/one": [ + {} + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/two": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -188,9 +949,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -207,16 +974,1308 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/two", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/two", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/two": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-G2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-G2.hujson index fb9d5b3a..ec6bd80c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-G2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-G2.hujson @@ -1,13 +1,16 @@ // GRANT-G2 // -// Grants: -// src=['*'] dst=['tag:server'] app={example.com/cap/test} -// src=['*'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 2 +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-G2", + "timestamp": "2026-04-05T21:18:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_g2.json", "full_policy": { "groups": { "group:admins": [ @@ -90,90 +93,852 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -194,9 +959,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -215,16 +986,1334 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-G3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-G3.hujson index 322cb05d..bae2bf67 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-G3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-G3.hujson @@ -1,13 +1,16 @@ // GRANT-G3 // -// Grants: -// src=['*'] dst=['tag:server'] app={example.com/cap/test} -// src=['tag:client'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 2 +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] +// src=['tag:client'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-G3", + "timestamp": "2026-04-05T21:19:04Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_g3.json", "full_policy": { "groups": { "group:admins": [ @@ -88,90 +91,850 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + { + "extra": true + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -209,16 +972,1269 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "extra": true + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "extra": true + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "extra": true + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "extra": true + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-G4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-G4.hujson index 933ef382..ddcc4d79 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-G4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-G4.hujson @@ -1,13 +1,16 @@ // GRANT-G4 // -// Grants: -// src=['*'] dst=['tag:server'] app={example.com/cap/test} -// src=['*'] dst=['tag:server'] ip=['tcp:80'] +// Grants: 2 +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-G4", + "timestamp": "2026-04-05T21:19:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_g4.json", "full_policy": { "groups": { "group:admins": [ @@ -84,111 +87,304 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "CapGrant": [ - { - "Dsts": [ - "100.108.74.26/32", - "fd7a:115c:a1e0::b901:4a87/128" - ], - "CapMap": { - "example.com/cap/test": [ - {} - ] - } - } - ] - }, - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -211,16 +407,1974 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-G5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-G5.hujson index ab494e94..4485f967 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-G5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-G5.hujson @@ -1,14 +1,17 @@ // GRANT-G5 // -// Grants: -// src=['*'] dst=['*'] ip=['*'] -// src=['tag:client'] dst=['tag:server'] app={example.com/cap/test} -// src=['autogroup:member'] dst=['tag:server'] ip=['tcp:443'] +// Grants: 3 +// src=['*'] dst=['*'] +// src=['tag:client'] dst=['tag:server'] app=['example.com/cap/test'] +// src=['autogroup:member'] dst=['tag:server'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-G5", + "timestamp": "2026-04-05T21:19:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_g5.json", "full_policy": { "groups": { "group:admins": [ @@ -96,78 +99,335 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + }, + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -179,16 +439,904 @@ } } ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -201,15 +1349,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -222,15 +2169,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -243,15 +2991,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -312,15 +3861,929 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -333,15 +4796,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -354,15 +5620,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -375,7 +6444,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-G6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-G6.hujson index 19ce42fd..335a80df 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-G6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-G6.hujson @@ -1,13 +1,16 @@ // GRANT-G6 // -// Grants: -// src=['*'] dst=['*'] app={example.com/cap/test} -// src=['*'] dst=['tag:server'] app={example.com/cap/test} +// Grants: 2 +// src=['*'] dst=['*'] app=['example.com/cap/test'] +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-G6", + "timestamp": "2026-04-05T21:20:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_g6.json", "full_policy": { "groups": { "group:admins": [ @@ -88,78 +91,308 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + { + "special": true + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -176,15 +409,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -201,15 +1257,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -226,15 +2101,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -251,15 +2947,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -278,9 +3795,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -299,15 +3822,939 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "special": true + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "special": true + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "special": true + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {}, + { + "special": true + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -324,15 +4771,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -349,15 +5619,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -374,7 +6467,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H1.hujson index 86977acd..96d045e0 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H1.hujson @@ -1,12 +1,14 @@ // GRANT-H1 // -// Grant: src=['*'] dst=['*'] -// -// Expected: Error (HTTP 400) — ip and app can not both be empty +// Grants: 1 +// src=['*'] dst=['*'] { "test_id": "GRANT-H1", + "description": "", + "timestamp": "2026-04-05T21:20:33Z", "error": true, "input": { + "policy_file": "grant_policies/grant_h1.json", "full_policy": { "groups": { "group:admins": [ @@ -68,6 +70,19 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": {} + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "ip and app can not both be empty" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H10.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H10.hujson index 5c768e00..acbd647d 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H10.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H10.hujson @@ -1,12 +1,14 @@ // GRANT-H10 // -// Grant: src=['autogroup:self'] dst=['*'] app={example.com/cap/test} -// -// Expected: Error (HTTP 400) — "autogroup:self" not valid on the src side of a rule +// Grants: 1 +// src=['autogroup:self'] dst=['*'] app=['example.com/cap/test'] { "test_id": "GRANT-H10", + "description": "", + "timestamp": "2026-04-05T21:20:33Z", "error": true, "input": { + "policy_file": "grant_policies/grant_h10.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:self" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "\"autogroup:self\" not valid on the src side of a rule" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H2.hujson index cac4d715..5086c705 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H2.hujson @@ -1,11 +1,15 @@ // GRANT-H2 // -// Grant: src=['*'] dst=['*'] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-H2", + "timestamp": "2026-04-05T21:20:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_h2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,78 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -155,15 +372,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -178,15 +1198,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -201,15 +2020,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -224,15 +2844,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -247,15 +3668,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -270,15 +4492,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -293,15 +5318,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -316,7 +6144,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H3.hujson index 00d3ad41..2fc74181 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H3.hujson @@ -1,12 +1,14 @@ // GRANT-H3 // -// Grant: src=['*'] dst=['*'] -// -// Expected: Error (HTTP 400) — ip and app can not both be empty +// Grants: 1 +// src=['*'] dst=['*'] { "test_id": "GRANT-H3", + "description": "", + "timestamp": "2026-04-05T21:20:56Z", "error": true, "input": { + "policy_file": "grant_policies/grant_h3.json", "full_policy": { "groups": { "group:admins": [ @@ -68,6 +70,19 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "ip and app can not both be empty" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H4.hujson index 19c133b6..03d70e98 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H4.hujson @@ -1,11 +1,15 @@ // GRANT-H4 // -// Grant: src=[] dst=['*'] app={example.com/cap/test} +// Grants: 1 +// src=[] dst=['*'] app=['example.com/cap/test'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-H4", + "timestamp": "2026-04-05T21:20:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_h4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,669 @@ } ] }, + "grants_section": [ + { + "src": [], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H5.hujson index 9447303b..61ef130e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H5.hujson @@ -1,11 +1,15 @@ // GRANT-H5 // -// Grant: src=['*'] dst=[] app={example.com/cap/test} +// Grants: 1 +// src=['*'] dst=[] app=['example.com/cap/test'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-H5", + "timestamp": "2026-04-05T21:21:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_h5.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,669 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H6.hujson index 2ae45d6d..d1247e77 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H6.hujson @@ -1,11 +1,15 @@ // GRANT-H6 // -// Grant: src=['group:empty'] dst=['*'] app={example.com/cap/test} +// Grants: 1 +// src=['group:empty'] dst=['*'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-H6", + "timestamp": "2026-04-05T21:21:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_h6.json", "full_policy": { "groups": { "group:admins": [ @@ -71,72 +75,145 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:empty" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -154,9 +231,122 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -174,9 +364,122 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -194,9 +497,117 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -214,9 +625,117 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -234,9 +753,117 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -254,9 +881,115 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -274,9 +1007,115 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [], @@ -294,7 +1133,109 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H7.hujson index b767863d..c773e55e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H7.hujson @@ -1,12 +1,14 @@ // GRANT-H7 // -// Grant: src=['tag:nonexistent'] dst=['*'] app={example.com/cap/test} -// -// Expected: Error (HTTP 400) — src=tag not found: "tag:nonexistent" +// Grants: 1 +// src=['tag:nonexistent'] dst=['*'] app=['example.com/cap/test'] { "test_id": "GRANT-H7", + "description": "", + "timestamp": "2026-04-05T21:22:05Z", "error": true, "input": { + "policy_file": "grant_policies/grant_h7.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:nonexistent" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "src=tag not found: \"tag:nonexistent\"" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H8.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H8.hujson index e56eb191..162568e6 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H8.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H8.hujson @@ -1,12 +1,14 @@ // GRANT-H8 // -// Grant: src=['*'] dst=['*'] -// -// Expected: Error (HTTP 400) — ip and app can not both be empty +// Grants: 1 +// src=['*'] dst=['*'] { "test_id": "GRANT-H8", + "description": "", + "timestamp": "2026-04-05T21:22:05Z", "error": true, "input": { + "policy_file": "grant_policies/grant_h8.json", "full_policy": { "groups": { "group:admins": [ @@ -67,6 +69,18 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "ip and app can not both be empty" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-H9.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-H9.hujson index 71c7aaec..75d9ce03 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-H9.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-H9.hujson @@ -1,12 +1,14 @@ // GRANT-H9 // -// Grant: src=['*'] dst=['autogroup:self'] app={example.com/cap/test} -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] app=['example.com/cap/test'] { "test_id": "GRANT-H9", + "description": "", + "timestamp": "2026-04-05T21:22:05Z", "error": true, "input": { + "policy_file": "grant_policies/grant_h9.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-I1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-I1.hujson index 7856af78..e3ddb9d1 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-I1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-I1.hujson @@ -1,11 +1,15 @@ // GRANT-I1 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-I1", + "timestamp": "2026-04-05T21:22:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_i1.json", "full_policy": { "groups": { "group:admins": [ @@ -72,81 +76,469 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -159,25 +551,1791 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-I2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-I2.hujson index 51ceb2d1..f29dde74 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-I2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-I2.hujson @@ -1,11 +1,15 @@ // GRANT-I2 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['tcp:80'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-I2", + "timestamp": "2026-04-05T21:22:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_i2.json", "full_policy": { "groups": { "group:admins": [ @@ -72,81 +76,469 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "tcp:80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -162,25 +554,1791 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-I3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-I3.hujson index 7623951a..e5f8dfc9 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-I3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-I3.hujson @@ -1,11 +1,15 @@ // GRANT-I3 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router', 'tag:exit'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router', 'tag:exit'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-I3", + "timestamp": "2026-04-05T21:22:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_i3.json", "full_policy": { "groups": { "group:admins": [ @@ -73,81 +77,295 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router", + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -160,25 +378,2057 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-I4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-I4.hujson index 648bbeb7..034afa80 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-I4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-I4.hujson @@ -1,12 +1,14 @@ // GRANT-I4 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['autogroup:tagged'] ip=['*'] -// -// Expected: Error (HTTP 400) — via can only be a tag +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['autogroup:tagged'] { "test_id": "GRANT-I4", + "description": "", + "timestamp": "2026-04-05T21:23:12Z", "error": true, "input": { + "policy_file": "grant_policies/grant_i4.json", "full_policy": { "groups": { "group:admins": [ @@ -73,6 +75,24 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "autogroup:tagged" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "via can only be a tag" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J1.hujson index eeedeed8..4ff5709c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J1.hujson @@ -1,11 +1,15 @@ // GRANT-J1 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:22'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-J1", + "timestamp": "2026-04-05T21:23:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_j1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -175,16 +380,1843 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J2.hujson index 8453309c..f003c302 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J2.hujson @@ -1,11 +1,15 @@ // GRANT-J2 // -// Grant: src=['*'] dst=['tag:server'] ip=['udp:53'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-J2", + "timestamp": "2026-04-05T21:23:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_j2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "udp:53" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -175,16 +380,1843 @@ 17 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J3.hujson index 127fb63f..b2e101cd 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J3.hujson @@ -1,11 +1,15 @@ // GRANT-J3 // -// Grant: src=['*'] dst=['tag:server'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-J3", + "timestamp": "2026-04-05T21:23:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_j3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J4.hujson index 73eea49c..71a2cb72 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J4.hujson @@ -1,11 +1,15 @@ // GRANT-J4 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:80', 'udp:53', 'tcp:443'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-J4", + "timestamp": "2026-04-05T21:24:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_j4.json", "full_policy": { "groups": { "group:admins": [ @@ -71,90 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:80", + "udp:53", + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -193,9 +400,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -218,16 +431,2104 @@ 17 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J5.hujson index cbdc4c8e..4d15eaa2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J5.hujson @@ -1,11 +1,15 @@ // GRANT-J5 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:80-443'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-J5", + "timestamp": "2026-04-05T21:24:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_j5.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:80-443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -175,16 +380,1843 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J6.hujson index ca1926e8..9acb3e54 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J6.hujson @@ -1,11 +1,15 @@ // GRANT-J6 // -// Grant: src=['*'] dst=['tag:server'] ip=['80'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-J6", + "timestamp": "2026-04-05T21:25:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_j6.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-J7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-J7.hujson index fafddfaa..812bae06 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-J7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-J7.hujson @@ -1,12 +1,14 @@ // GRANT-J7 // -// Grant: src=['*'] dst=['tag:server'] ip=['icmp'] -// -// Expected: Error (HTTP 400) — port range "icmp": invalid first integer +// Grants: 1 +// src=['*'] dst=['tag:server'] { "test_id": "GRANT-J7", + "description": "", + "timestamp": "2026-04-05T21:25:28Z", "error": true, "input": { + "policy_file": "grant_policies/grant_j7.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "icmp" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "port range \"icmp\": invalid first integer" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K1.hujson index c1f93ad1..b9678abe 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K1.hujson @@ -1,12 +1,14 @@ // GRANT-K1 // -// ACLs: -// accept: src=['*'] dst=['*:*'] +// ACL: accept: src=['*'] dst=['*:*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K1", + "timestamp": "2026-04-05T21:28:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k1.json", "full_policy": { "groups": { "group:admins": [ @@ -68,78 +70,299 @@ } ] }, + "grants_section": null, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -152,15 +375,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -173,15 +1195,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -194,15 +2015,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -215,15 +2837,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,15 +3659,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -257,15 +4481,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -278,15 +5305,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -299,7 +6129,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K10.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K10.hujson index ed5fbaec..d665e715 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K10.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K10.hujson @@ -1,12 +1,14 @@ // GRANT-K10 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/funnel} -// -// Expected: Error (HTTP 400) — capability name must not be in the tailscale.com domain +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/funnel'] { "test_id": "GRANT-K10", + "description": "", + "timestamp": "2026-04-05T21:25:28Z", "error": true, "input": { + "policy_file": "grant_policies/grant_k10.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/funnel": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "capability name must not be in the tailscale.com domain" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K11.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K11.hujson index c247e33a..65e7d496 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K11.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K11.hujson @@ -1,11 +1,15 @@ // GRANT-K11 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/webui,...} (4 caps) +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/webui', 'tailscale.com/cap/relay', 'tailscale.com/cap/kubernetes', 'tailscale.com/cap/drive'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K11", + "timestamp": "2026-04-05T21:25:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k11.json", "full_policy": { "groups": { "group:admins": [ @@ -91,78 +95,313 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/webui": [ + {} + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -201,9 +440,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -220,9 +465,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -237,15 +488,1216 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -284,9 +1736,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -303,9 +1761,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -320,15 +1784,1212 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -367,9 +3028,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -386,9 +3053,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -403,15 +3076,1214 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -450,9 +4322,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -469,9 +4347,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -486,15 +4370,1214 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -533,9 +5616,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -552,9 +5641,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -569,15 +5664,1214 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -616,9 +6910,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -635,9 +6935,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -652,15 +6958,1216 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -699,9 +8206,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -718,9 +8231,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -735,15 +8254,1216 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -782,9 +9502,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -801,9 +9527,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -818,7 +9550,1198 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/relay", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/webui", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/relay-target", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/webui": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/relay-target": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ], + "tailscale.com/cap/drive-sharer": null, + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ], + "tailscale.com/cap/relay": [ + {} + ], + "tailscale.com/cap/relay-target": null, + "tailscale.com/cap/webui": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K12.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K12.hujson index 2a9bd23d..ef1ddb4e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K12.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K12.hujson @@ -1,11 +1,15 @@ // GRANT-K12 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] app={example.com/cap/subnet-access} +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] app=['example.com/cap/subnet-access'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-K12", + "timestamp": "2026-04-05T21:25:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k12.json", "full_policy": { "groups": { "group:admins": [ @@ -76,94 +80,2179 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "app": { + "example.com/cap/subnet-access": [ + { + "level": "admin" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K13.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K13.hujson index 2c38605b..9ac3cc99 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K13.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K13.hujson @@ -1,11 +1,15 @@ // GRANT-K13 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['tcp:80'] app={example.com/cap/subnet-access} +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] app=['example.com/cap/subnet-access'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-K13", + "timestamp": "2026-04-05T21:26:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k13.json", "full_policy": { "groups": { "group:admins": [ @@ -79,81 +83,476 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "tcp:80" + ], + "app": { + "example.com/cap/subnet-access": [ + { + "level": "admin" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -169,25 +568,1791 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K14.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K14.hujson index 70a8eddf..b21dfe41 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K14.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K14.hujson @@ -1,11 +1,15 @@ // GRANT-K14 // -// Grant: src=['fd7a:115c:a1e0::c537:c845'] dst=['tag:server'] ip=['tcp:22'] +// Grants: 1 +// src=['fd7a:115c:a1e0::c537:c845'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-K14", + "timestamp": "2026-04-05T21:26:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k14.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "fd7a:115c:a1e0::c537:c845" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,16 +235,795 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K15.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K15.hujson index ac3669c7..7c65978a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K15.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K15.hujson @@ -1,11 +1,15 @@ // GRANT-K15 // -// Grant: src=['*'] dst=['fd7a:115c:a1e0::b901:4a87'] ip=['tcp:22'] +// Grants: 1 +// src=['*'] dst=['fd7a:115c:a1e0::b901:4a87'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-K15", + "timestamp": "2026-04-05T21:26:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k15.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "fd7a:115c:a1e0::b901:4a87" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -168,16 +373,1808 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K16.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K16.hujson index 88b43e20..e92eb311 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K16.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K16.hujson @@ -1,13 +1,16 @@ // GRANT-K16 // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['tcp:22'] -// src=['*'] dst=['*'] ip=['*'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['*'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K16", + "timestamp": "2026-04-05T21:27:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k16.json", "full_policy": { "groups": { "group:admins": [ @@ -82,156 +85,310 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -260,9 +417,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -275,15 +438,4229 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -296,15 +4673,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -317,15 +5497,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -338,7 +6321,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K17.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K17.hujson index 6ad645fd..af7231a5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K17.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K17.hujson @@ -1,13 +1,16 @@ // GRANT-K17 // -// Grants: -// src=['*'] dst=['*'] ip=['*'] -// src=['tag:client'] dst=['tag:server'] ip=['tcp:22'] +// Grants: 2 +// src=['*'] dst=['*'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K17", + "timestamp": "2026-04-05T21:27:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k17.json", "full_policy": { "groups": { "group:admins": [ @@ -82,162 +85,322 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -275,15 +438,4229 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -296,15 +4673,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -317,15 +5497,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -338,7 +6321,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K18.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K18.hujson index 3bfb3c4b..5d95bc2c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K18.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K18.hujson @@ -1,13 +1,16 @@ // GRANT-K18 // -// Grants: -// src=['*'] dst=['*'] app={example.com/cap/one} -// src=['*'] dst=['*'] app={example.com/cap/two} +// Grants: 2 +// src=['*'] dst=['*'] app=['example.com/cap/one'] +// src=['*'] dst=['*'] app=['example.com/cap/two'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K18", + "timestamp": "2026-04-05T21:28:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k18.json", "full_policy": { "groups": { "group:admins": [ @@ -88,78 +91,308 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/one": [ + {} + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -178,9 +411,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -199,15 +438,955 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -226,9 +1405,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -247,15 +1432,951 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -274,9 +2395,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -295,15 +2422,953 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -322,9 +3387,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -343,15 +3414,953 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -370,9 +4379,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -391,15 +4406,953 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -418,9 +5371,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -439,15 +5398,955 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -466,9 +6365,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -487,15 +6392,955 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -514,9 +7359,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -535,7 +7386,937 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/one", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/two", + "Values": [ + { + "v": 42 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/one": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/one": [ + {} + ], + "example.com/cap/two": [ + { + "v": 42 + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K19.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K19.hujson index e1d7c23c..44e97645 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K19.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K19.hujson @@ -1,13 +1,16 @@ // GRANT-K19 // -// Grants: -// src=['*'] dst=['*'] app={example.com/cap/test} -// src=['*'] dst=['*'] app={example.com/cap/test} +// Grants: 2 +// src=['*'] dst=['*'] app=['example.com/cap/test'] +// src=['*'] dst=['*'] app=['example.com/cap/test'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K19", + "timestamp": "2026-04-05T21:28:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k19.json", "full_policy": { "groups": { "group:admins": [ @@ -90,78 +93,310 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -182,9 +417,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -203,15 +444,961 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -232,9 +1419,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -253,15 +1446,957 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -282,9 +2417,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -303,15 +2444,959 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -332,9 +3417,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -353,15 +3444,959 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -382,9 +4417,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -403,15 +4444,959 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -432,9 +5417,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -453,15 +5444,961 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -482,9 +6419,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -503,15 +6446,961 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -532,9 +7421,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -553,7 +7448,943 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 1 + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/test", + "Values": [ + { + "v": 2 + } + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/test": [ + { + "v": 2 + } + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + { + "v": 1 + }, + { + "v": 2 + } + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K2.hujson index 1e612067..e6149e34 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K2.hujson @@ -1,11 +1,15 @@ // GRANT-K2 // -// Grant: src=['*'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K2", + "timestamp": "2026-04-05T21:32:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,78 +73,311 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -153,15 +390,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -174,15 +1210,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -195,15 +2030,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -216,15 +2852,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -237,15 +3674,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -258,15 +4496,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,15 +5320,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -300,7 +6144,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K20.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K20.hujson index 337be3f0..ab7c15ec 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K20.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K20.hujson @@ -1,11 +1,15 @@ // GRANT-K20 // -// Grant: src=['user:*@passkey'] dst=['tag:server'] ip=['tcp:22'] +// Grants: 1 +// src=['user:*@passkey'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-K20", + "timestamp": "2026-04-05T21:29:12Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k20.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "user:*@passkey" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -175,16 +238,935 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.103.90.82/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.103.90.82/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K21.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K21.hujson index d1d62a4d..8073cf25 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K21.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K21.hujson @@ -1,11 +1,15 @@ // GRANT-K21 // -// Grant: src=['*'] dst=['user:*@passkey'] ip=['tcp:22'] +// Grants: 1 +// src=['*'] dst=['user:*@passkey'] // -// Expected: Rules on user-mon, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-K21", + "timestamp": "2026-04-05T21:29:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k21.json", "full_policy": { "groups": { "group:admins": [ @@ -69,96 +73,1602 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "user:*@passkey" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -181,15 +1691,813 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -212,7 +2520,795 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K22.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K22.hujson index de4ef47a..8a6428c5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K22.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K22.hujson @@ -1,11 +1,15 @@ // GRANT-K22 // -// Grant: src=['*'] dst=['tag:server'] ip=['47'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-K22", + "timestamp": "2026-04-05T21:29:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k22.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "47" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 47, + "Last": 47 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 47, + "Last": 47 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 47, + "Last": 47 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 47, + "Last": 47 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 47, + "Last": 47 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 47, + "Last": 47 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 47, + "Last": 47 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 47, + "Last": 47 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 47, + "Last": 47 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 47, + "Last": 47 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K23.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K23.hujson index 4cc6c3a4..15692084 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K23.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K23.hujson @@ -1,12 +1,14 @@ // GRANT-K23 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:0'] -// -// Expected: Error (HTTP 400) — port range "0": first port must be >0, or use '*' for wildcard +// Grants: 1 +// src=['*'] dst=['tag:server'] { "test_id": "GRANT-K23", + "description": "", + "timestamp": "2026-04-05T21:30:20Z", "error": true, "input": { + "policy_file": "grant_policies/grant_k23.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:0" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "port range \"0\": first port must be >0, or use '*' for wildcard" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K24.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K24.hujson index ab64ba61..0c771327 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K24.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K24.hujson @@ -1,11 +1,15 @@ // GRANT-K24 // -// Grant: src=['*'] dst=['*'] app={example.com/a/b/c/d/e/f} +// Grants: 1 +// src=['*'] dst=['*'] app=['example.com/a/b/c/d/e/f'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K24", + "timestamp": "2026-04-05T21:30:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k24.json", "full_policy": { "groups": { "group:admins": [ @@ -71,78 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -159,15 +378,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -184,15 +1226,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -209,15 +2070,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -234,15 +2916,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -259,15 +3762,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -284,15 +4608,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -309,15 +5456,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -334,7 +6304,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/a/b/c/d/e/f", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/a/b/c/d/e/f": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K25.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K25.hujson index 439926af..c0929b8c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K25.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K25.hujson @@ -1,11 +1,15 @@ // GRANT-K25 // -// Grant: src=['*'] dst=['*'] app={my-company.internal/cap/access} +// Grants: 1 +// src=['*'] dst=['*'] app=['my-company.internal/cap/access'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K25", + "timestamp": "2026-04-05T21:30:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k25.json", "full_policy": { "groups": { "group:admins": [ @@ -71,78 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -159,15 +378,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -184,15 +1226,834 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -209,15 +2070,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.83.200.69/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::c537:c845/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -234,15 +2916,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.8.15/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::5b37:80f/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -259,15 +3762,836 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -284,15 +4608,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -309,15 +5456,838 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -334,7 +6304,820 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "my-company.internal/cap/access", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "my-company.internal/cap/access": [ + {} + ] + } + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K26.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K26.hujson index 1e75062a..d5a1f0bb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K26.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K26.hujson @@ -1,11 +1,15 @@ // GRANT-K26 // -// Grant: src=['autogroup:member'] dst=['autogroup:member', 'autogroup:tagged'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:member', 'autogroup:tagged'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K26", + "timestamp": "2026-04-05T21:31:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k26.json", "full_policy": { "groups": { "group:admins": [ @@ -70,72 +74,256 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:member", + "autogroup:tagged" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -147,6 +335,62 @@ "fd7a:115c:a1e0::9e37:5a52" ], "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.85.66.106", "Ports": { @@ -154,18 +398,1035 @@ "Last": 65535 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.85.66.106/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7c37:426a/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.117.104.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.121.186.70/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::6737:ba46/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7437:6852/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.109.43.124/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a537:2b7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.65.172.123/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5a37:ac7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -193,9 +1454,326 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -223,9 +1801,321 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -253,9 +2143,321 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -283,9 +2485,321 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -313,9 +2827,757 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -343,9 +3605,757 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -373,7 +4383,751 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K27.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K27.hujson index bf979816..1847159f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K27.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K27.hujson @@ -1,11 +1,15 @@ // GRANT-K27 // -// Grant: src=['autogroup:member'] dst=['autogroup:self'] app={example.com/cap/self-service} +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:self'] app=['example.com/cap/self-service'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-K27", + "timestamp": "2026-04-05T21:31:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k27.json", "full_policy": { "groups": { "group:admins": [ @@ -71,87 +75,485 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:self" + ], + "app": { + "example.com/cap/self-service": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,9 +574,121 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/self-service", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/self-service", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "example.com/cap/self-service": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -195,9 +709,121 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/self-service", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/self-service", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "example.com/cap/self-service": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -218,7 +844,115 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/self-service", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/self-service", + "Values": [ + {} + ] + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "example.com/cap/self-service": [ + {} + ] + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K28.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K28.hujson index 3c161381..358fd8cc 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K28.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K28.hujson @@ -1,11 +1,15 @@ // GRANT-K28 // -// Grant: src=['autogroup:member'] dst=['autogroup:self'] ip=['*'] app={tailscale.com/cap/drive} +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:self'] app=['tailscale.com/cap/drive'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-K28", + "timestamp": "2026-04-05T21:31:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k28.json", "full_policy": { "groups": { "group:admins": [ @@ -79,87 +83,718 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -224,9 +859,231 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "CapGrant": [ + { + "Dsts": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -291,9 +1148,231 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -358,7 +1437,225 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "CapGrant": [ + { + "Dsts": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K29.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K29.hujson index 0d62e4fa..427c0d5e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K29.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K29.hujson @@ -1,9 +1,12 @@ // GRANT-K29 // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-K29", + "timestamp": "2026-04-05T21:32:12Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k29.json", "full_policy": { "groups": { "group:admins": [ @@ -55,94 +58,657 @@ }, "grants": [] }, + "grants_section": [], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K3.hujson index 6da653ad..b46dfcca 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K3.hujson @@ -1,12 +1,17 @@ // GRANT-K3 // -// Grant: src=['*'] dst=['tag:server'] app={example.com/cap/test} -// Also has ACLs +// ACL: accept: src=['*'] dst=['*:*'] // -// Expected: Rules on 8 nodes +// Grants: 1 +// src=['*'] dst=['tag:server'] app=['example.com/cap/test'] +// +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-K3", + "timestamp": "2026-04-05T21:32:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k3.json", "full_policy": { "groups": { "group:admins": [ @@ -83,78 +88,313 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "app": { + "example.com/cap/test": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -167,15 +407,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -188,15 +1227,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -209,15 +2047,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -230,15 +2869,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "CapGrant": [ @@ -257,9 +3697,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,15 +3718,920 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/test", + "Values": [ + {} + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/test": [ + {} + ] + } + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -293,15 +4644,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,15 +5468,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -335,7 +6292,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K30.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K30.hujson index ff17f65a..123e268b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K30.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K30.hujson @@ -1,12 +1,14 @@ // GRANT-K30 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router', 'tag:nonexistent'] ip=['*'] -// -// Expected: Error (HTTP 400) — tag "tag:nonexistent" not found +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router', 'tag:nonexistent'] { "test_id": "GRANT-K30", + "description": "", + "timestamp": "2026-04-05T21:32:57Z", "error": true, "input": { + "policy_file": "grant_policies/grant_k30.json", "full_policy": { "groups": { "group:admins": [ @@ -74,6 +76,25 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router", + "tag:nonexistent" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "tag \"tag:nonexistent\" not found" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K4.hujson index 6b934dfb..710b8cc9 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K4.hujson @@ -1,12 +1,17 @@ // GRANT-K4 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:80', 'tcp:443'] -// Also has ACLs +// ACL: accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on tagged-server +// Grants: 1 +// src=['*'] dst=['tag:server'] +// +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-K4", + "timestamp": "2026-04-05T21:33:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k4.json", "full_policy": { "groups": { "group:admins": [ @@ -82,90 +87,292 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:80", + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -224,16 +431,2039 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K5.hujson index ad44c478..aca9fac4 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K5.hujson @@ -1,14 +1,18 @@ // GRANT-K5 // -// Grants: -// src=['autogroup:member'] dst=['tag:server'] app={tailscale.com/cap/kubernetes} -// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['*'] -// Also has ACLs +// ACL: accept: src=['tag:client'] dst=['tag:server:22'] // -// Expected: Rules on subnet-router, tagged-server +// Grants: 2 +// src=['autogroup:member'] dst=['tag:server'] app=['tailscale.com/cap/kubernetes'] +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] +// +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-K5", + "timestamp": "2026-04-05T21:33:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k5.json", "full_policy": { "groups": { "group:admins": [ @@ -105,81 +109,565 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "app": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + }, + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -192,15 +680,1189 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -253,16 +1915,1283 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + ] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "CapGrant": [ + { + "Dsts": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K6.hujson index b20786bf..91c89dd3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K6.hujson @@ -1,11 +1,15 @@ // GRANT-K6 // -// Grant: src=['autogroup:danger-all'] dst=['tag:server'] ip=['tcp:22'] +// Grants: 1 +// src=['autogroup:danger-all'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-K6", + "timestamp": "2026-04-05T21:34:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_k6.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,279 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:danger-all" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,16 +371,1778 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "0.0.0.0/0", + "::/0" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "*" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "*" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "0.0.0.0/0", + "::/0" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "*" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K7.hujson index a3959907..34dac59c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K7.hujson @@ -1,12 +1,14 @@ // GRANT-K7 // -// Grant: src=['*'] dst=['autogroup:danger-all'] ip=['tcp:22'] -// -// Expected: Error (HTTP 400) — cannot use autogroup:danger-all as a dst +// Grants: 1 +// src=['*'] dst=['autogroup:danger-all'] { "test_id": "GRANT-K7", + "description": "", + "timestamp": "2026-04-05T21:34:27Z", "error": true, "input": { + "policy_file": "grant_policies/grant_k7.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:danger-all" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "cannot use autogroup:danger-all as a dst" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K8.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K8.hujson index 9a7bf19c..96df3bf5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K8.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K8.hujson @@ -1,12 +1,14 @@ // GRANT-K8 // -// Grant: src=['autogroup:danger-all'] dst=['autogroup:danger-all'] ip=['*'] -// -// Expected: Error (HTTP 400) — cannot use autogroup:danger-all as a dst +// Grants: 1 +// src=['autogroup:danger-all'] dst=['autogroup:danger-all'] { "test_id": "GRANT-K8", + "description": "", + "timestamp": "2026-04-05T21:34:27Z", "error": true, "input": { + "policy_file": "grant_policies/grant_k8.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:danger-all" + ], + "dst": [ + "autogroup:danger-all" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "cannot use autogroup:danger-all as a dst" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-K9.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-K9.hujson index da82cd89..eb2e03ed 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-K9.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-K9.hujson @@ -1,12 +1,14 @@ // GRANT-K9 // -// Grant: src=['*'] dst=['*'] app={tailscale.com/cap/ingress} -// -// Expected: Error (HTTP 400) — capability name must not be in the tailscale.com domain +// Grants: 1 +// src=['*'] dst=['*'] app=['tailscale.com/cap/ingress'] { "test_id": "GRANT-K9", + "description": "", + "timestamp": "2026-04-05T21:34:27Z", "error": true, "input": { + "policy_file": "grant_policies/grant_k9.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "app": { + "tailscale.com/cap/ingress": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "capability name must not be in the tailscale.com domain" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_1.hujson index fc572a14..ba87de46 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_1.hujson @@ -1,11 +1,15 @@ // GRANT-P01_1 // -// Grant: src=['*'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P01_1", + "timestamp": "2026-04-05T21:34:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p01_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,78 +73,311 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -153,15 +390,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -174,15 +1210,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -195,15 +2030,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -216,15 +2852,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -237,15 +3674,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -258,15 +4496,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,15 +5320,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -300,7 +6144,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_2.hujson index a067452b..218e61aa 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_2.hujson @@ -1,11 +1,15 @@ // GRANT-P01_2 // -// Grant: src=['100.90.199.68'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['100.90.199.68'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P01_2", + "timestamp": "2026-04-05T21:34:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p01_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "100.90.199.68" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -150,9 +381,185 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -168,9 +575,185 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -186,9 +769,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -204,9 +958,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -222,9 +1147,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -240,9 +1336,178 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -258,9 +1523,178 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -276,7 +1710,771 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_3.hujson index bad623d4..2e69fd15 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_3.hujson @@ -1,11 +1,15 @@ // GRANT-P01_3 // -// Grant: src=['100.64.0.0/16'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['100.64.0.0/16'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P01_3", + "timestamp": "2026-04-05T21:35:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p01_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "100.64.0.0/16" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -150,9 +225,122 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -168,9 +356,122 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -186,9 +487,117 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -204,9 +613,117 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -222,9 +739,117 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -240,9 +865,115 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -258,9 +989,115 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -276,7 +1113,109 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.64.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.64.0.0/16" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_4.hujson index 6e07f6a1..78a31340 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_4.hujson @@ -1,11 +1,15 @@ // GRANT-P01_4 // -// Grant: src=['*'] dst=['100.108.74.26'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['100.108.74.26'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P01_4", + "timestamp": "2026-04-05T21:35:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p01_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "100.108.74.26" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -165,16 +370,1805 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_5.hujson index 722418cc..473714b7 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P01_5.hujson @@ -1,11 +1,15 @@ // GRANT-P01_5 // -// Grant: src=['*'] dst=['100.64.0.0/12'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['100.64.0.0/12'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P01_5", + "timestamp": "2026-04-05T21:35:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p01_5.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,1028 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "100.64.0.0/12" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.64.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_1.hujson index 37ba57a3..8a9161f6 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_1.hujson @@ -1,11 +1,15 @@ // GRANT-P02_1 // -// Grant: src=['kratail2tid@passkey'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['kratail2tid@passkey'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P02_1", + "timestamp": "2026-04-05T21:36:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p02_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "kratail2tid@passkey" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -151,9 +382,187 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -170,9 +579,187 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -189,9 +776,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -208,9 +968,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -227,9 +1160,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -246,9 +1352,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -265,9 +1542,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -284,7 +1732,773 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_2.hujson index 3a79b456..0645a1ca 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_2.hujson @@ -1,11 +1,15 @@ // GRANT-P02_2 // -// Grant: src=['*'] dst=['kratail2tid@passkey'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['kratail2tid@passkey'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P02_2", + "timestamp": "2026-04-05T21:36:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p02_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,99 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "kratail2tid@passkey" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -181,7 +377,1816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_3.hujson index c0ace633..c0fc7ce1 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_3.hujson @@ -1,11 +1,15 @@ // GRANT-P02_3 // -// Grant: src=['group:admins'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['group:admins'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P02_3", + "timestamp": "2026-04-05T21:37:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p02_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -151,9 +382,187 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -170,9 +579,187 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -189,9 +776,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -208,9 +968,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -227,9 +1160,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -246,9 +1352,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -265,9 +1542,180 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -284,7 +1732,773 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_4.hujson index eec02dd5..38da4799 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_4.hujson @@ -1,11 +1,15 @@ // GRANT-P02_4 // -// Grant: src=['*'] dst=['group:admins'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['group:admins'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P02_4", + "timestamp": "2026-04-05T21:37:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p02_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,99 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "group:admins" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -181,7 +377,1816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_CORRECT.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_CORRECT.hujson index aa0cfb9d..c3c8945e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_CORRECT.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_CORRECT.hujson @@ -1,13 +1,16 @@ // GRANT-P02_5_CORRECT // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:prod'] ip=['5432'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:prod'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P02_5_CORRECT", + "timestamp": "2026-04-05T21:37:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p02_5_correct.json", "full_policy": { "groups": { "group:admins": [ @@ -82,81 +85,614 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:prod" + ], + "ip": [ + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -180,9 +716,193 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -206,16 +926,379 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_NAIVE.hujson index 724ee430..3d83ecb3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P02_5_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P02_5_NAIVE // -// Grant: src=['tag:client'] dst=['tag:server', 'tag:prod'] ip=['22', '5432'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'tag:prod'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P02_5_NAIVE", + "timestamp": "2026-04-05T21:38:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p02_5_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -71,81 +75,689 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "tag:prod" + ], + "ip": [ + "22", + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -183,9 +795,221 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -223,16 +1047,407 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_1.hujson index 754bed4b..b8d65b3d 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_1.hujson @@ -1,11 +1,15 @@ // GRANT-P03_1 // -// Grant: src=['tag:client'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['tag:client'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P03_1", + "timestamp": "2026-04-05T21:38:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p03_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -151,9 +382,191 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -170,9 +583,191 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -189,9 +784,777 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -208,9 +1571,186 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -227,9 +1767,186 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -246,9 +1963,184 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -265,9 +2157,184 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -284,7 +2351,178 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_2.hujson index 9b039da3..f37a0792 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_2.hujson @@ -1,11 +1,15 @@ // GRANT-P03_2 // -// Grant: src=['*'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P03_2", + "timestamp": "2026-04-05T21:38:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p03_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_3.hujson index 9cc7c4bf..a82bf0a2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_3.hujson @@ -1,11 +1,15 @@ // GRANT-P03_3 // -// Grant: src=['tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P03_3", + "timestamp": "2026-04-05T21:39:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p03_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -170,16 +233,797 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_4.hujson index 4b9ddf54..4b960dfd 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P03_4.hujson @@ -1,11 +1,15 @@ // GRANT-P03_4 // -// Grant: src=['tag:client', 'tag:prod'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['tag:client', 'tag:prod'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P03_4", + "timestamp": "2026-04-05T21:39:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p03_4.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client", + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,16 +237,940 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_1.hujson index 347d8fbc..bd2e21ff 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_1.hujson @@ -1,11 +1,15 @@ // GRANT-P04_1 // -// Grant: src=['autogroup:member'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P04_1", + "timestamp": "2026-04-05T21:40:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p04_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -155,9 +386,319 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -178,9 +719,319 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -201,9 +1052,314 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -224,9 +1380,314 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -247,9 +1708,314 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -270,9 +2036,787 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -293,9 +2837,787 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -316,7 +3638,781 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_2.hujson index 9d6e33a2..9d09efdb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_2.hujson @@ -1,11 +1,15 @@ // GRANT-P04_2 // -// Grant: src=['autogroup:tagged'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['autogroup:tagged'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P04_2", + "timestamp": "2026-04-05T21:40:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p04_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,85 +73,334 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:tagged" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -159,22 +412,870 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -186,22 +1287,870 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -213,22 +2162,872 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -240,22 +3039,872 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -267,22 +3916,872 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -294,22 +4793,713 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -321,22 +5511,713 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -348,7 +6229,672 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_3.hujson index f6a7d71f..ff8f88bb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_3.hujson @@ -1,12 +1,14 @@ // GRANT-P04_3 // -// Grant: src=['*'] dst=['autogroup:self'] ip=['*'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] { "test_id": "GRANT-P04_3", + "description": "", + "timestamp": "2026-04-05T21:40:50Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p04_3.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_4.hujson index b6442a5c..d28ac566 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P04_4.hujson @@ -1,11 +1,15 @@ // GRANT-P04_4 // -// Grant: src=['*'] dst=['autogroup:internet'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['autogroup:internet'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P04_4", + "timestamp": "2026-04-05T21:40:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p04_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,2991 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:internet" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_1.hujson index e14f4e96..160b8e61 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_1.hujson @@ -1,11 +1,15 @@ // GRANT-P05_1 // -// Grant: src=['*'] dst=['webserver'] ip=['80'] +// Grants: 1 +// src=['*'] dst=['webserver'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P05_1", + "timestamp": "2026-04-05T21:41:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p05_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "webserver" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -165,16 +370,1805 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_2.hujson index cbf3d7b5..b4d19ca5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_2.hujson @@ -1,11 +1,15 @@ // GRANT-P05_2 // -// Grant: src=['webserver'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['webserver'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P05_2", + "timestamp": "2026-04-05T21:41:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p05_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,299 @@ } ] }, + "grants_section": [ + { + "src": [ + "webserver" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -150,9 +381,189 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -168,9 +579,189 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -186,9 +777,184 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -204,9 +970,184 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -222,9 +1163,775 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -240,9 +1947,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -258,9 +2138,182 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -276,7 +2329,176 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_3.hujson index ca266f59..a63746ec 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P05_3.hujson @@ -1,11 +1,15 @@ // GRANT-P05_3 // -// Grant: src=['internal'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['internal'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P05_3", + "timestamp": "2026-04-05T21:41:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p05_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,72 +73,295 @@ } ] }, + "grants_section": [ + { + "src": [ + "internal" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -150,9 +377,262 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -168,9 +648,773 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -186,9 +1430,257 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -204,9 +1696,257 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -222,9 +1962,257 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -240,9 +2228,255 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -258,9 +2492,255 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -276,7 +2756,249 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_1.hujson index 148f72ae..05c627f2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_1.hujson @@ -1,11 +1,15 @@ // GRANT-P06_1 // -// Grant: src=['*'] dst=['tag:server'] ip=['tcp:22'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_1", + "timestamp": "2026-04-05T21:42:21Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "tcp:22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -175,16 +380,1843 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_2.hujson index d4abbab6..0f5ac5ac 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_2.hujson @@ -1,11 +1,15 @@ // GRANT-P06_2 // -// Grant: src=['*'] dst=['tag:server'] ip=['udp:53'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_2", + "timestamp": "2026-04-05T21:42:43Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "udp:53" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -175,16 +380,1843 @@ 17 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_3.hujson index 9b0b3edf..ffa0d935 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_3.hujson @@ -1,11 +1,15 @@ // GRANT-P06_3 // -// Grant: src=['*'] dst=['tag:server'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_3", + "timestamp": "2026-04-05T21:43:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_4.hujson index 8979898d..2af0cfa2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_4.hujson @@ -1,11 +1,15 @@ // GRANT-P06_4 // -// Grant: src=['*'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_4", + "timestamp": "2026-04-05T21:43:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_5.hujson index d2ea6867..ac3d8604 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_5.hujson @@ -1,11 +1,15 @@ // GRANT-P06_5 // -// Grant: src=['*'] dst=['tag:server'] ip=['80-443'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_5", + "timestamp": "2026-04-05T21:43:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_5.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80-443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_6.hujson index 85932563..f1eaca88 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_6.hujson @@ -1,11 +1,15 @@ // GRANT-P06_6 // -// Grant: src=['*'] dst=['tag:server'] ip=['22', '80', '443'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_6", + "timestamp": "2026-04-05T21:44:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_6.json", "full_policy": { "groups": { "group:admins": [ @@ -71,90 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22", + "80", + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -202,16 +409,1980 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_7.hujson index eba6350c..e65bc2b1 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P06_7.hujson @@ -1,11 +1,15 @@ // GRANT-P06_7 // -// Grant: src=['*'] dst=['tag:server'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P06_7", + "timestamp": "2026-04-05T21:44:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p06_7.json", "full_policy": { "groups": { "group:admins": [ @@ -69,90 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,16 +377,1840 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_1.hujson index 5cd9f961..ade5a192 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_1.hujson @@ -1,13 +1,16 @@ // GRANT-P08_1 // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:server'] ip=['80', '443'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P08_1", + "timestamp": "2026-04-05T21:44:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_1.json", "full_policy": { "groups": { "group:admins": [ @@ -83,84 +86,155 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80", + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -212,16 +286,937 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_2.hujson index c39fa731..de820930 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_2.hujson @@ -1,14 +1,17 @@ // GRANT-P08_2 // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:server'] ip=['80', '443'] -// src=['*'] dst=['tag:server'] ip=['udp:53'] +// Grants: 3 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:server'] +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P08_2", + "timestamp": "2026-04-05T21:45:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_2.json", "full_policy": { "groups": { "group:admins": [ @@ -95,84 +98,302 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80", + "443" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "udp:53" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -226,9 +447,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -251,16 +478,2109 @@ 17 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 17 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 53, + "Last": 53 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_3.hujson index cd1f657d..563cd66d 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_3.hujson @@ -1,11 +1,15 @@ // GRANT-P08_3 // -// Grant: src=['group:empty'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['group:empty'] dst=['*'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-P08_3", + "timestamp": "2026-04-05T21:45:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,669 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:empty" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_4.hujson index dab78a5d..72fd324a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_4.hujson @@ -1,14 +1,17 @@ // GRANT-P08_4 // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:server'] ip=['80'] -// src=['tag:client'] dst=['tag:server'] ip=['443'] +// Grants: 3 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P08_4", + "timestamp": "2026-04-05T21:46:04Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_4.json", "full_policy": { "groups": { "group:admins": [ @@ -94,84 +97,165 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -223,16 +307,937 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_5.hujson index 433304d3..6c21f879 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_5.hujson @@ -1,14 +1,17 @@ // GRANT-P08_5 // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:prod'] dst=['tag:server'] ip=['22'] -// src=['tag:router'] dst=['tag:server'] ip=['22'] +// Grants: 3 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:prod'] dst=['tag:server'] +// src=['tag:router'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P08_5", + "timestamp": "2026-04-05T21:46:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_5.json", "full_policy": { "groups": { "group:admins": [ @@ -94,84 +97,197 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:router" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -219,8 +335,14 @@ }, { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d" + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -239,16 +361,1392 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_6.hujson index 439936b7..829947c8 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_6.hujson @@ -1,13 +1,16 @@ // GRANT-P08_6 // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['*'] dst=['tag:server'] ip=['80'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['*'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P08_6", + "timestamp": "2026-04-05T21:46:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_6.json", "full_policy": { "groups": { "group:admins": [ @@ -82,84 +85,290 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -185,9 +394,15 @@ }, { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -207,16 +422,1966 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_7.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_7.hujson index 259af2f9..f9e4d07b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_7.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_7.hujson @@ -1,13 +1,16 @@ // GRANT-P08_7 // -// Grants: -// src=['*'] dst=['*'] ip=['*'] -// src=['tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 2 +// src=['*'] dst=['*'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P08_7", + "timestamp": "2026-04-05T21:47:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_7.json", "full_policy": { "groups": { "group:admins": [ @@ -82,162 +85,322 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,15 +435,4226 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -293,15 +4667,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,15 +5491,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -335,7 +6315,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_8.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_8.hujson index 5ff8b65e..10467a36 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_8.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P08_8.hujson @@ -1,11 +1,15 @@ // GRANT-P08_8 // -// Grant: src=['*'] dst=['10.0.0.0/8'] ip=['22'] +// Grants: 1 +// src=['*'] dst=['10.0.0.0/8'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P08_8", + "timestamp": "2026-04-05T21:47:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p08_8.json", "full_policy": { "groups": { "group:admins": [ @@ -69,81 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.0.0.0/8" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -156,25 +370,2309 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10A.hujson index 03f2b752..067f37c4 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10A.hujson @@ -1,13 +1,16 @@ // GRANT-P09_10A // -// Grants: -// src=['autogroup:member'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['group:admins'] ip=['80'] +// Grants: 2 +// src=['autogroup:member'] dst=['tag:server'] +// src=['tag:client'] dst=['group:admins'] // -// Expected: Rules on tagged-server, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_10A", + "timestamp": "2026-04-05T21:47:56Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_10a.json", "full_policy": { "groups": { "group:admins": [ @@ -82,84 +85,654 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "group:admins" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -187,15 +760,583 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -219,7 +1360,251 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10B.hujson index d54bb21a..cc16f7b9 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10B.hujson @@ -1,13 +1,16 @@ // GRANT-P09_10B // -// Grants: -// src=['group:admins'] dst=['*'] ip=['*'] -// src=['autogroup:tagged'] dst=['*'] ip=['*'] +// Grants: 2 +// src=['group:admins'] dst=['*'] +// src=['autogroup:tagged'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_10B", + "timestamp": "2026-04-05T21:48:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_10b.json", "full_policy": { "groups": { "group:admins": [ @@ -82,72 +85,310 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "autogroup:tagged" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -167,15 +408,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -187,9 +450,880 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -209,15 +1343,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -229,9 +1385,880 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -251,15 +2278,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -271,9 +2320,882 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -293,15 +3215,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -313,9 +3257,882 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -335,15 +4152,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -355,9 +4194,882 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -377,15 +5089,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -397,9 +5131,785 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -419,15 +5929,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -439,9 +5971,785 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -461,15 +6769,37 @@ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -481,7 +6811,878 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10C.hujson index 069306e3..4490419f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10C.hujson @@ -1,14 +1,17 @@ // GRANT-P09_10C // -// Grants: -// src=['*'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:server'] ip=['80'] -// src=['autogroup:member'] dst=['tag:server'] ip=['443'] +// Grants: 3 +// src=['*'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:server'] +// src=['autogroup:member'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_10C", + "timestamp": "2026-04-05T21:48:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_10c.json", "full_policy": { "groups": { "group:admins": [ @@ -94,90 +97,313 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80" + ] + }, + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -245,16 +471,2112 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10D.hujson index ba5eaa0d..5ab59dd6 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_10D.hujson @@ -1,13 +1,16 @@ // GRANT-P09_10D // -// Grants: -// src=['tag:client', 'tag:prod'] dst=['tag:server'] ip=['22'] -// src=['autogroup:member', 'group:admins'] dst=['tag:router'] ip=['5432'] +// Grants: 2 +// src=['tag:client', 'tag:prod'] dst=['tag:server'] +// src=['autogroup:member', 'group:admins'] dst=['tag:router'] // -// Expected: Rules on subnet-router, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_10D", + "timestamp": "2026-04-05T21:49:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_10d.json", "full_policy": { "groups": { "group:admins": [ @@ -84,75 +87,554 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client", + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "autogroup:member", + "group:admins" + ], + "dst": [ + "tag:router" + ], + "ip": [ + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -180,15 +662,592 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -214,16 +1273,791 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11A.hujson index 419c6c10..e4e0d452 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_11A // -// Grant: src=['autogroup:member', 'tag:client'] dst=['tag:server'] ip=['22', '80', '443'] +// Grants: 1 +// src=['autogroup:member', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_11A", + "timestamp": "2026-04-05T21:49:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_11a.json", "full_policy": { "groups": { "group:admins": [ @@ -72,84 +76,146 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22", + "80", + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -207,16 +273,1354 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11B.hujson index cef49beb..755686be 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_11B // -// Grant: src=['group:admins', 'webserver'] dst=['tag:server'] ip=['80-443'] +// Grants: 1 +// src=['group:admins', 'webserver'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_11B", + "timestamp": "2026-04-05T21:49:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_11b.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins", + "webserver" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80-443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,16 +236,798 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11C_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11C_NAIVE.hujson index c23e02a7..b2f79597 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11C_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11C_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P09_11C_NAIVE // -// Grant: src=['tag:client', 'tag:prod'] dst=['tag:server', 'tag:router'] ip=['22', '80-443', '5432', '3306'] +// Grants: 1 +// src=['tag:client', 'tag:prod'] dst=['tag:server', 'tag:router'] // -// Expected: Rules on subnet-router, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_11C_NAIVE", + "timestamp": "2026-04-05T21:50:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_11c_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -74,75 +78,1132 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client", + "tag:prod" + ], + "dst": [ + "tag:server", + "tag:router" + ], + "ip": [ + "22", + "80-443", + "5432", + "3306" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -210,15 +1271,844 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -286,16 +2176,533 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3306, + "Last": 3306 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11D.hujson index 0aa6b619..3b81f158 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_11D.hujson @@ -1,11 +1,15 @@ // GRANT-P09_11D // -// Grant: src=['autogroup:tagged', 'autogroup:member'] dst=['tag:server', 'tag:router'] ip=['*', '5432'] +// Grants: 1 +// src=['autogroup:tagged', 'autogroup:member'] dst=['tag:server', 'tag:router'] // -// Expected: Rules on subnet-router, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_11D", + "timestamp": "2026-04-05T21:50:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_11d.json", "full_policy": { "groups": { "group:admins": [ @@ -72,94 +76,1113 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:tagged", + "autogroup:member" + ], + "dst": [ + "tag:server", + "tag:router" + ], + "ip": [ + "*", + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -192,34 +1215,1388 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -252,16 +2629,1573 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12A.hujson index 4c965f4c..47efcc41 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_12A // -// Grant: src=['internal', 'tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['internal', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_12A", + "timestamp": "2026-04-05T21:50:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_12a.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,201 @@ } ] }, + "grants_section": [ + { + "src": [ + "internal", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,16 +293,1008 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12B.hujson index 94a6446b..8c702b22 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_12B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_12B // -// Grant: src=['tag:client'] dst=['internal', 'tag:server'] ip=['22', '80'] +// Grants: 1 +// src=['tag:client'] dst=['internal', 'tag:server'] // -// Expected: Rules on subnet-router, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_12B", + "timestamp": "2026-04-05T21:51:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_12b.json", "full_policy": { "groups": { "group:admins": [ @@ -71,75 +75,434 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "internal", + "tag:server" + ], + "ip": [ + "22", + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -163,15 +526,536 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -209,16 +1093,407 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13A.hujson index f79aa885..c40e8819 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13A.hujson @@ -1,12 +1,14 @@ // GRANT-P09_13A // -// Grant: src=['*'] dst=['autogroup:self'] ip=['*'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] { "test_id": "GRANT-P09_13A", + "description": "", + "timestamp": "2026-04-05T21:51:39Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p09_13a.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13B.hujson index 421051d8..9ef7d157 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13B.hujson @@ -1,12 +1,14 @@ // GRANT-P09_13B // -// Grant: src=['*'] dst=['autogroup:self'] ip=['22'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] { "test_id": "GRANT-P09_13B", + "description": "", + "timestamp": "2026-04-05T21:51:39Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p09_13b.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13C.hujson index 6565a70d..d6b5d233 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13C.hujson @@ -1,12 +1,14 @@ // GRANT-P09_13C // -// Grant: src=['*'] dst=['autogroup:self'] ip=['22', '80', '443'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] { "test_id": "GRANT-P09_13C", + "description": "", + "timestamp": "2026-04-05T21:51:40Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p09_13c.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "22", + "80", + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13D.hujson index 9578aad9..01c888bb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13D.hujson @@ -1,12 +1,14 @@ // GRANT-P09_13D // -// Grant: src=['*'] dst=['autogroup:self'] ip=['80-443'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self'] { "test_id": "GRANT-P09_13D", + "description": "", + "timestamp": "2026-04-05T21:51:40Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p09_13d.json", "full_policy": { "groups": { "group:admins": [ @@ -70,6 +72,21 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "80-443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13E.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13E.hujson index fda3262f..b391380f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13E.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13E.hujson @@ -1,11 +1,15 @@ // GRANT-P09_13E // -// Grant: src=['autogroup:member'] dst=['autogroup:self'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:self'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-P09_13E", + "timestamp": "2026-04-05T21:51:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_13e.json", "full_policy": { "groups": { "group:admins": [ @@ -69,87 +73,708 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,9 +798,124 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -199,9 +939,124 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -225,7 +1080,118 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13F.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13F.hujson index 50713b68..398cebcd 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13F.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13F.hujson @@ -1,11 +1,15 @@ // GRANT-P09_13F // -// Grant: src=['kratail2tid@passkey'] dst=['autogroup:self'] ip=['*'] +// Grants: 1 +// src=['kratail2tid@passkey'] dst=['autogroup:self'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_13F", + "timestamp": "2026-04-05T21:52:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_13f.json", "full_policy": { "groups": { "group:admins": [ @@ -69,93 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "kratail2tid@passkey" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -179,7 +233,663 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13G.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13G.hujson index 42362d03..61eea4b5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13G.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13G.hujson @@ -1,11 +1,15 @@ // GRANT-P09_13G // -// Grant: src=['group:admins'] dst=['autogroup:self'] ip=['*'] +// Grants: 1 +// src=['group:admins'] dst=['autogroup:self'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_13G", + "timestamp": "2026-04-05T21:52:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_13g.json", "full_policy": { "groups": { "group:admins": [ @@ -69,93 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -179,7 +233,663 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_CORRECT.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_CORRECT.hujson index a072904e..35eb9725 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_CORRECT.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_CORRECT.hujson @@ -1,14 +1,15 @@ // GRANT-P09_13H_CORRECT // -// Grants: -// src=['*'] dst=['autogroup:self'] ip=['*'] -// src=['*'] dst=['tag:server'] ip=['22'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 2 +// src=['*'] dst=['autogroup:self'] +// src=['*'] dst=['tag:server'] { "test_id": "GRANT-P09_13H_CORRECT", + "description": "", + "timestamp": "2026-04-05T21:52:48Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p09_13h_correct.json", "full_policy": { "groups": { "group:admins": [ @@ -83,6 +84,32 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_NAIVE.hujson index 75447359..1d3aac61 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_13H_NAIVE.hujson @@ -1,12 +1,14 @@ // GRANT-P09_13H_NAIVE // -// Grant: src=['*'] dst=['autogroup:self', 'tag:server'] ip=['*', '22'] -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['*'] dst=['autogroup:self', 'tag:server'] { "test_id": "GRANT-P09_13H_NAIVE", + "description": "", + "timestamp": "2026-04-05T21:52:48Z", "error": true, "input": { + "policy_file": "grant_policies/grant_p09_13h_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:self", + "tag:server" + ], + "ip": [ + "*", + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14A.hujson index e69081b5..33bb7459 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14A.hujson @@ -1,13 +1,16 @@ // GRANT-P09_14A // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:server'] ip=['80'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_14A", + "timestamp": "2026-04-05T21:52:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14a.json", "full_policy": { "groups": { "group:admins": [ @@ -82,84 +85,154 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -197,16 +270,867 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14B.hujson index bde4875c..73e66a2a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14B.hujson @@ -1,13 +1,16 @@ // GRANT-P09_14B // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:prod'] dst=['tag:server'] ip=['22'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:prod'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_14B", + "timestamp": "2026-04-05T21:53:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14b.json", "full_policy": { "groups": { "group:admins": [ @@ -82,84 +85,154 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -205,16 +278,1056 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14C.hujson index 4bf2fc90..612eacc1 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14C.hujson @@ -1,13 +1,16 @@ // GRANT-P09_14C // -// Grants: -// src=['*'] dst=['*'] ip=['*'] -// src=['tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 2 +// src=['*'] dst=['*'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_14C", + "timestamp": "2026-04-05T21:53:33Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14c.json", "full_policy": { "groups": { "group:admins": [ @@ -82,162 +85,322 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,15 +435,4226 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -293,15 +4667,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,15 +5491,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -335,7 +6315,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14D.hujson index be5d3166..726d9451 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14D.hujson @@ -1,14 +1,17 @@ // GRANT-P09_14D // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:prod'] dst=['tag:server'] ip=['80'] -// src=['tag:router'] dst=['tag:server'] ip=['443'] +// Grants: 3 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:prod'] dst=['tag:server'] +// src=['tag:router'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_14D", + "timestamp": "2026-04-05T21:53:56Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14d.json", "full_policy": { "groups": { "group:admins": [ @@ -94,84 +97,197 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "80" + ] + }, + { + "src": [ + "tag:router" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -219,8 +335,14 @@ }, { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d" + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -239,16 +361,1392 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.8.15", + "fd7a:115c:a1e0::5b37:80f" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + }, + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14E.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14E.hujson index bdcfcf9f..df42683b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14E.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14E.hujson @@ -1,14 +1,17 @@ // GRANT-P09_14E // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:prod'] ip=['5432'] -// src=['tag:client'] dst=['tag:router'] ip=['80'] +// Grants: 3 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:prod'] +// src=['tag:client'] dst=['tag:router'] // -// Expected: Rules on subnet-router, tagged-prod, tagged-server +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-P09_14E", + "timestamp": "2026-04-05T21:54:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14e.json", "full_policy": { "groups": { "group:admins": [ @@ -94,75 +97,555 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:prod" + ], + "ip": [ + "5432" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:router" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -186,12 +669,510 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -215,9 +1196,193 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -241,16 +1406,379 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14F.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14F.hujson index f80d7d1c..473aef31 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14F.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14F.hujson @@ -1,13 +1,16 @@ // GRANT-P09_14F // -// Grants: -// src=['autogroup:tagged'] dst=['*'] ip=['*'] -// src=['autogroup:member'] dst=['*'] ip=['*'] +// Grants: 2 +// src=['autogroup:tagged'] dst=['*'] +// src=['autogroup:member'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_14F", + "timestamp": "2026-04-05T21:54:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14f.json", "full_policy": { "groups": { "group:admins": [ @@ -82,85 +85,345 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:tagged" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "autogroup:member" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -191,22 +454,923 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -237,22 +1401,923 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -283,22 +2348,925 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -329,22 +3297,925 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -375,22 +4246,925 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -421,22 +5195,927 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -467,22 +6146,927 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -513,7 +7097,886 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14G.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14G.hujson index 8959cb38..20b3f301 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14G.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14G.hujson @@ -1,13 +1,16 @@ // GRANT-P09_14G // -// Grants: -// src=['autogroup:member', 'group:admins', 'kratail2tid@passkey'] dst=['tag:server'] ip=['22'] -// src=['tag:server', 'webserver', '100.108.74.26'] dst=['group:admins'] ip=['80'] +// Grants: 2 +// src=['autogroup:member', 'group:admins', 'kratail2tid@passkey'] dst=['tag:server'] +// src=['tag:server', 'webserver', '100.108.74.26'] dst=['group:admins'] // -// Expected: Rules on tagged-server, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_14G", + "timestamp": "2026-04-05T21:55:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14g.json", "full_policy": { "groups": { "group:admins": [ @@ -86,84 +89,595 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "group:admins", + "kratail2tid@passkey" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:server", + "webserver", + "100.108.74.26" + ], + "dst": [ + "group:admins" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + }, + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -191,15 +705,583 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -223,7 +1305,185 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14H.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14H.hujson index fdc1248c..0be6ee36 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14H.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14H.hujson @@ -1,13 +1,16 @@ // GRANT-P09_14H // -// Grants: -// src=['tag:client'] dst=['*'] ip=['*'] -// src=['tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 2 +// src=['tag:client'] dst=['*'] +// src=['tag:client'] dst=['tag:server'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_14H", + "timestamp": "2026-04-05T21:55:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14h.json", "full_policy": { "groups": { "group:admins": [ @@ -82,148 +85,310 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.83.200.69", - "fd7a:115c:a1e0::c537:c845" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.83.200.69", - "fd7a:115c:a1e0::c537:c845" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-client": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.83.200.69", - "fd7a:115c:a1e0::c537:c845" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-prod": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.83.200.69", - "fd7a:115c:a1e0::c537:c845" - ], - "DstPorts": [ - { - "IP": "*", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -254,9 +419,1641 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -273,9 +2070,184 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -292,9 +2264,184 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -311,7 +2458,178 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14I.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14I.hujson index c16e1e99..03b15fd3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14I.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_14I.hujson @@ -1,14 +1,17 @@ // GRANT-P09_14I // -// Grants: -// src=['*'] dst=['tag:server'] ip=['22'] -// src=['*'] dst=['tag:prod'] ip=['5432'] -// src=['*'] dst=['*'] ip=['80'] +// Grants: 3 +// src=['*'] dst=['tag:server'] +// src=['*'] dst=['tag:prod'] +// src=['*'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_14I", + "timestamp": "2026-04-05T21:55:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_14i.json", "full_policy": { "groups": { "group:admins": [ @@ -94,81 +97,364 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "tag:prod" + ], + "ip": [ + "5432" + ] + }, + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, { "IP": "*", "Ports": { @@ -178,15 +464,870 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -199,15 +1340,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -220,15 +2160,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -255,15 +2996,844 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -290,15 +3860,844 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -311,15 +4710,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,15 +5534,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -353,7 +6358,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1A.hujson index 2133f76a..92f891c7 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_1A // -// Grant: src=['autogroup:member', 'tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['autogroup:member', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_1A", + "timestamp": "2026-04-05T21:56:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_1a.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -177,16 +241,1214 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1B.hujson index 5c11bda6..ae215bba 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_1B // -// Grant: src=['autogroup:tagged', 'autogroup:member'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['autogroup:tagged', 'autogroup:member'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_1B", + "timestamp": "2026-04-05T21:56:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_1b.json", "full_policy": { "groups": { "group:admins": [ @@ -70,103 +74,297 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:tagged", + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -185,16 +383,1933 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1C.hujson index 1023f1c3..e4c0c1a5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_1C // -// Grant: src=['group:admins', 'tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['group:admins', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_1C", + "timestamp": "2026-04-05T21:56:56Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_1c.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,16 +237,936 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1D.hujson index fdfce372..31112885 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1D.hujson @@ -1,11 +1,15 @@ // GRANT-P09_1D // -// Grant: src=['kratail2tid@passkey', 'tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['kratail2tid@passkey', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_1D", + "timestamp": "2026-04-05T21:57:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_1d.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "kratail2tid@passkey", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,16 +237,936 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1E.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1E.hujson index 3c3b5177..e6d6ba5b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1E.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_1E.hujson @@ -1,11 +1,15 @@ // GRANT-P09_1E // -// Grant: src=['100.90.199.68', 'tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['100.90.199.68', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_1E", + "timestamp": "2026-04-05T21:57:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_1e.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "100.90.199.68", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,16 +236,931 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_CORRECT.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_CORRECT.hujson index f6ea9b72..73cb8ed8 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_CORRECT.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_CORRECT.hujson @@ -1,13 +1,16 @@ // GRANT-P09_2A_CORRECT // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['tag:prod'] ip=['5432'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['tag:prod'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_2A_CORRECT", + "timestamp": "2026-04-05T21:58:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_2a_correct.json", "full_policy": { "groups": { "group:admins": [ @@ -82,81 +85,614 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:prod" + ], + "ip": [ + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -180,9 +716,193 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -206,16 +926,379 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_NAIVE.hujson index fff57da8..1cc4b8c9 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2A_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P09_2A_NAIVE // -// Grant: src=['tag:client'] dst=['tag:server', 'tag:prod'] ip=['22', '5432'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'tag:prod'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_2A_NAIVE", + "timestamp": "2026-04-05T21:58:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_2a_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -71,81 +75,689 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "tag:prod" + ], + "ip": [ + "22", + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -183,9 +795,221 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -223,16 +1047,407 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_CORRECT.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_CORRECT.hujson index 13825b8c..81713ecf 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_CORRECT.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_CORRECT.hujson @@ -1,13 +1,16 @@ // GRANT-P09_2B_CORRECT // -// Grants: -// src=['tag:client'] dst=['tag:server'] ip=['22'] -// src=['tag:client'] dst=['webserver'] ip=['80'] +// Grants: 2 +// src=['tag:client'] dst=['tag:server'] +// src=['tag:client'] dst=['webserver'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_2B_CORRECT", + "timestamp": "2026-04-05T21:58:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_2b_correct.json", "full_policy": { "groups": { "group:admins": [ @@ -82,84 +85,154 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "webserver" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -190,16 +263,832 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_NAIVE.hujson index f1201224..dbde328b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2B_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P09_2B_NAIVE // -// Grant: src=['tag:client'] dst=['tag:server', 'webserver'] ip=['22', '80'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'webserver'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_2B_NAIVE", + "timestamp": "2026-04-05T21:59:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_2b_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,145 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "webserver" + ], + "ip": [ + "22", + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -200,16 +265,937 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2C.hujson index 50676067..f0437fba 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_2C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_2C // -// Grant: src=['tag:client'] dst=['webserver', 'prodbox'] ip=['22', '5432'] +// Grants: 1 +// src=['tag:client'] dst=['webserver', 'prodbox'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_2C", + "timestamp": "2026-04-05T21:59:33Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_2c.json", "full_policy": { "groups": { "group:admins": [ @@ -71,81 +75,605 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "webserver", + "prodbox" + ], + "ip": [ + "22", + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -169,9 +697,193 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -195,16 +907,379 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3A.hujson index 5130dff4..2ffbcd75 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_3A // -// Grant: src=['tag:server', 'webserver'] dst=['tag:client'] ip=['22'] +// Grants: 1 +// src=['tag:server', 'webserver'] dst=['tag:client'] // -// Expected: Rules on tagged-client +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_3A", + "timestamp": "2026-04-05T21:59:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_3a.json", "full_policy": { "groups": { "group:admins": [ @@ -70,78 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:server", + "webserver" + ], + "dst": [ + "tag:client" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -165,22 +235,797 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3B.hujson index 0e7ffb58..4ebdbc7e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_3B // -// Grant: src=['autogroup:member', 'kratail2tid@passkey', 'group:admins'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['autogroup:member', 'kratail2tid@passkey', 'group:admins'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_3B", + "timestamp": "2026-04-05T22:00:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_3b.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,145 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "kratail2tid@passkey", + "group:admins" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -176,16 +241,1071 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3C.hujson index 7ed092ae..1faa165f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_3C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_3C // -// Grant: src=['tag:client'] dst=['tag:server', 'webserver'] ip=['22'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'webserver'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_3C", + "timestamp": "2026-04-05T22:00:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_3c.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "webserver" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -178,16 +242,832 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4A.hujson index e8856d4a..5739840f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4A // -// Grant: src=['autogroup:member'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['autogroup:member'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_4A", + "timestamp": "2026-04-05T22:01:03Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4a.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -174,16 +237,1071 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4B.hujson index 25fdecbc..2c59d890 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4B // -// Grant: src=['autogroup:tagged'] dst=['kratail2tid@passkey'] ip=['22'] +// Grants: 1 +// src=['autogroup:tagged'] dst=['kratail2tid@passkey'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_4B", + "timestamp": "2026-04-05T22:01:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4b.json", "full_policy": { "groups": { "group:admins": [ @@ -69,106 +73,290 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:tagged" + ], + "dst": [ + "kratail2tid@passkey" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -187,7 +375,1629 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4C.hujson index 30bebe07..e10d9901 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4C // -// Grant: src=['group:admins'] dst=['webserver'] ip=['22'] +// Grants: 1 +// src=['group:admins'] dst=['webserver'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_4C", + "timestamp": "2026-04-05T22:01:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4c.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:admins" + ], + "dst": [ + "webserver" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -163,16 +226,758 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4D.hujson index 8f423ba4..c938d21a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4D.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4D // -// Grant: src=['webserver'] dst=['group:admins'] ip=['22'] +// Grants: 1 +// src=['webserver'] dst=['group:admins'] // -// Expected: Rules on user1 +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_4D", + "timestamp": "2026-04-05T22:02:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4d.json", "full_policy": { "groups": { "group:admins": [ @@ -69,93 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "webserver" + ], + "dst": [ + "group:admins" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { - "packet_filter_rules": null - }, - "user-kris": { - "packet_filter_rules": null - }, - "user-mon": { - "packet_filter_rules": null - }, - "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -178,7 +232,788 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4E.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4E.hujson index 12d89306..0d1fb172 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4E.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4E.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4E // -// Grant: src=['autogroup:member'] dst=['autogroup:self'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:self'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-P09_4E", + "timestamp": "2026-04-05T22:02:33Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4e.json", "full_policy": { "groups": { "group:admins": [ @@ -69,87 +73,708 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:self" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,9 +798,124 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.110.121.96", + "fd7a:115c:a1e0::1737:7960" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -199,9 +939,124 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -225,7 +1080,118 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4F.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4F.hujson index 3df540c3..ab303e0a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4F.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4F.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4F // -// Grant: src=['100.90.199.68'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['100.90.199.68'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_4F", + "timestamp": "2026-04-05T22:02:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4f.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "100.90.199.68" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -169,16 +232,788 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4G.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4G.hujson index cb1a3e62..3aaf41be 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4G.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_4G.hujson @@ -1,11 +1,15 @@ // GRANT-P09_4G // -// Grant: src=['tag:client'] dst=['100.108.74.26'] ip=['22'] +// Grants: 1 +// src=['tag:client'] dst=['100.108.74.26'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_4G", + "timestamp": "2026-04-05T22:03:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_4g.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,143 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "100.108.74.26" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -163,16 +226,762 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5A.hujson index 1ee58c93..a85a41de 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_5A // -// Grant: src=['tag:client', 'tag:prod'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['tag:client', 'tag:prod'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_5A", + "timestamp": "2026-04-05T22:03:40Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_5a.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client", + "tag:prod" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,16 +237,940 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5B.hujson index fc58a566..eebb2c23 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_5B // -// Grant: src=['tag:prod', 'tag:client'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['tag:prod', 'tag:client'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_5B", + "timestamp": "2026-04-05T22:04:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_5b.json", "full_policy": { "groups": { "group:admins": [ @@ -70,84 +74,144 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:prod", + "tag:client" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -173,16 +237,940 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.83.200.69/32", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.83.200.69", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5C_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5C_NAIVE.hujson index e073ad4e..8e26d91a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5C_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_5C_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P09_5C_NAIVE // -// Grant: src=['tag:client'] dst=['tag:server', 'tag:prod'] ip=['22', '80'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'tag:prod'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_5C_NAIVE", + "timestamp": "2026-04-05T22:04:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_5c_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -71,81 +75,689 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "tag:prod" + ], + "ip": [ + "22", + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -183,9 +795,221 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -223,16 +1047,407 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6A.hujson index 817eb382..ec1a0b0f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_6A // -// Grant: src=['*'] dst=['webserver', 'prodbox'] ip=['22', '5432'] +// Grants: 1 +// src=['*'] dst=['webserver', 'prodbox'] // -// Expected: Rules on tagged-prod, tagged-server +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-P09_6A", + "timestamp": "2026-04-05T22:04:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_6a.json", "full_policy": { "groups": { "group:admins": [ @@ -71,87 +75,1054 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "webserver", + "prodbox" + ], + "ip": [ + "22", + "5432" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -171,15 +1142,811 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -199,16 +1966,1384 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6B.hujson index 707f1095..80be8482 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_6B // -// Grant: src=['group:empty'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['group:empty'] dst=['tag:server'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-P09_6B", + "timestamp": "2026-04-05T22:05:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_6b.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,669 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:empty" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6C.hujson index 832bccbb..979777c3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_6C // -// Grant: src=['internal'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['internal'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_6C", + "timestamp": "2026-04-05T22:05:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_6c.json", "full_policy": { "groups": { "group:admins": [ @@ -69,84 +73,200 @@ } ] }, + "grants_section": [ + { + "src": [ + "internal" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -169,16 +289,865 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6D.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6D.hujson index 03e6d5c4..951228b1 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6D.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_6D.hujson @@ -1,11 +1,15 @@ // GRANT-P09_6D // -// Grant: src=['tag:client'] dst=['internal'] ip=['22'] +// Grants: 1 +// src=['tag:client'] dst=['internal'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_6D", + "timestamp": "2026-04-05T22:05:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_6d.json", "full_policy": { "groups": { "group:admins": [ @@ -69,75 +73,200 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "internal" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -154,25 +283,835 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7A.hujson index a7fda3da..54304db3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_7A // -// Grant: src=['*', 'autogroup:member', 'autogroup:tagged', 'group:admins', 'tag:client', 'webserver', '100.90.199.68'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['*', 'autogroup:member', 'autogroup:tagged', 'group:admins', 'tag:client', 'webserver', '100.90.199.68'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_7A", + "timestamp": "2026-04-05T22:06:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_7a.json", "full_policy": { "groups": { "group:admins": [ @@ -75,107 +79,336 @@ } ] }, + "grants_section": [ + { + "src": [ + "*", + "autogroup:member", + "autogroup:tagged", + "group:admins", + "tag:client", + "webserver", + "100.90.199.68" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -194,16 +427,2030 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.115.94.0-100.127.255.255", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.64.0.0-100.115.91.255", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7B_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7B_NAIVE.hujson index a9c6954d..c5d550e5 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7B_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7B_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P09_7B_NAIVE // -// Grant: src=['tag:client'] dst=['tag:server', 'tag:prod', 'webserver', 'prodbox', 'group:admins', 'kratail2tid@passkey', '100.108.74.26'] ip=['22', '5432', '80', '443', '8080', '3000', '9000'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'tag:prod', 'webserver', 'prodbox', 'group:admins', 'kratail2tid@passkey', '100.108.74.26'] // -// Expected: Rules on tagged-prod, tagged-server, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-P09_7B_NAIVE", + "timestamp": "2026-04-05T22:06:39Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_7b_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -81,81 +85,2210 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "tag:prod", + "webserver", + "prodbox", + "group:admins", + "kratail2tid@passkey", + "100.108.74.26" + ], + "ip": [ + "22", + "5432", + "80", + "443", + "8080", + "3000", + "9000" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -312,9 +2445,459 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -520,15 +3103,685 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -734,7 +3987,549 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "100.90.199.68", + "Ports": { + "First": 9000, + "Last": 9000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 3000, + "Last": 3000 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 9000, + "Last": 9000 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7C.hujson index 4b10e77f..bfeff878 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_7C // -// Grant: src=['autogroup:member', 'autogroup:tagged', 'group:admins', 'group:developers', 'kratail2tid@passkey', 'tag:client', 'tag:prod', 'tag:router', 'webserver', 'prodbox'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['autogroup:member', 'autogroup:tagged', 'group:admins', 'group:developers', 'kratail2tid@passkey', 'tag:client', 'tag:prod', 'tag:router', 'webserver', 'prodbox'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_7C", + "timestamp": "2026-04-05T22:07:01Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_7c.json", "full_policy": { "groups": { "group:admins": [ @@ -78,91 +82,349 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "autogroup:tagged", + "group:admins", + "group:developers", + "kratail2tid@passkey", + "tag:client", + "tag:prod", + "tag:router", + "webserver", + "prodbox" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -174,28 +436,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -207,28 +1329,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -240,28 +2222,890 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -273,28 +3117,890 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -306,28 +4012,890 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -339,28 +4907,892 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -372,28 +5804,892 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -405,7 +6701,845 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7D_NAIVE.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7D_NAIVE.hujson index ddd72877..140e3f31 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7D_NAIVE.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_7D_NAIVE.hujson @@ -1,11 +1,15 @@ // GRANT-P09_7D_NAIVE // -// Grant: src=['*'] dst=['tag:server', 'tag:prod', 'tag:client', 'tag:router', 'webserver', 'prodbox'] ip=['22', '80', '443', '5432', '3306', '8080'] +// Grants: 1 +// src=['*'] dst=['tag:server', 'tag:prod', 'tag:client', 'tag:router', 'webserver', 'prodbox'] // -// Expected: Rules on subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "GRANT-P09_7D_NAIVE", + "timestamp": "2026-04-05T22:07:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_7d_naive.json", "full_policy": { "groups": { "group:admins": [ @@ -79,81 +83,2758 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server", + "tag:prod", + "tag:client", + "tag:router", + "webserver", + "prodbox" + ], + "ip": [ + "22", + "80", + "443", + "5432", + "3306", + "8080" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -243,15 +2924,949 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -341,15 +3956,951 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -481,15 +5032,1035 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -621,16 +6192,2145 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 8080, + "Last": 8080 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 5432, + "Last": 5432 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 3306, + "Last": 3306 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 8080, + "Last": 8080 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8A.hujson index f69018a2..913eaf49 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_8A // -// Grant: src=['autogroup:member', 'group:admins', 'group:developers', 'kratail2tid@passkey', '100.90.199.68'] dst=['tag:server'] ip=['22'] +// Grants: 1 +// src=['autogroup:member', 'group:admins', 'group:developers', 'kratail2tid@passkey', '100.90.199.68'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_8A", + "timestamp": "2026-04-05T22:07:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_8a.json", "full_policy": { "groups": { "group:admins": [ @@ -73,84 +77,147 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "group:admins", + "group:developers", + "kratail2tid@passkey", + "100.90.199.68" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -178,16 +245,1071 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8B.hujson index 844423f9..65e605a1 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_8B // -// Grant: src=['tag:server', 'webserver', '100.108.74.26'] dst=['tag:client'] ip=['22'] +// Grants: 1 +// src=['tag:server', 'webserver', '100.108.74.26'] dst=['tag:client'] // -// Expected: Rules on tagged-client +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_8B", + "timestamp": "2026-04-05T22:08:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_8b.json", "full_policy": { "groups": { "group:admins": [ @@ -71,78 +75,145 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:server", + "webserver", + "100.108.74.26" + ], + "dst": [ + "tag:client" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -166,22 +237,797 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.108.74.26", + "fd7a:115c:a1e0::b901:4a87" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8C.hujson index fc9ce10f..65354769 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_8C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_8C // -// Grant: src=['tag:client'] dst=['tag:server', 'webserver', '100.108.74.26'] ip=['22'] +// Grants: 1 +// src=['tag:client'] dst=['tag:server', 'webserver', '100.108.74.26'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P09_8C", + "timestamp": "2026-04-05T22:08:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_8c.json", "full_policy": { "groups": { "group:admins": [ @@ -71,84 +75,145 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "tag:server", + "webserver", + "100.108.74.26" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { - "packet_filter_rules": null - }, - "tagged-client": { - "packet_filter_rules": null - }, - "tagged-prod": { - "packet_filter_rules": null - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -186,16 +251,867 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9A.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9A.hujson index f2ee0dd7..dc47205f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9A.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9A.hujson @@ -1,11 +1,15 @@ // GRANT-P09_9A // -// Grant: src=['tag:server', 'tag:client', 'tag:prod', 'tag:router'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['tag:server', 'tag:client', 'tag:prod', 'tag:router'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_9A", + "timestamp": "2026-04-05T22:08:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_9a.json", "full_policy": { "groups": { "group:admins": [ @@ -72,81 +76,297 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:server", + "tag:client", + "tag:prod", + "tag:router" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -160,18 +380,475 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -185,18 +862,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -210,18 +1683,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -235,18 +2506,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -260,18 +3329,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -285,18 +4152,468 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -310,18 +4627,468 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", + "100.105.127.107", "100.108.74.26", + "100.119.241.111", "100.83.200.69", "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", "fd7a:115c:a1e0::c537:c845" ], @@ -335,7 +5102,447 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.105.127.107/32", + "100.108.74.26/32", + "100.119.241.111/32", + "100.83.200.69/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.105.127.107", + "100.108.74.26", + "100.119.241.111", + "100.83.200.69", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9B.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9B.hujson index 2a3ec788..f29c2208 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9B.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9B.hujson @@ -1,11 +1,15 @@ // GRANT-P09_9B // -// Grant: src=['*'] dst=['tag:server', 'tag:client', 'tag:prod', 'tag:router'] ip=['22'] +// Grants: 1 +// src=['*'] dst=['tag:server', 'tag:client', 'tag:prod', 'tag:router'] // -// Expected: Rules on subnet-router, tagged-client, tagged-prod, tagged-server +// Nodes with filter rules: 5 of 8 { "test_id": "GRANT-P09_9B", + "timestamp": "2026-04-05T22:09:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_9b.json", "full_policy": { "groups": { "group:admins": [ @@ -72,81 +76,1029 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server", + "tag:client", + "tag:prod", + "tag:router" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -166,15 +1118,809 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -194,15 +1940,811 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.83.200.69/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::c537:c845/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.83.200.69", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::c537:c845", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -222,15 +2764,811 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.8.15/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::5b37:80f/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.103.8.15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5b37:80f", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -250,16 +3588,1921 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9C.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9C.hujson index ce7615e0..54272e8b 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9C.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P09_9C.hujson @@ -1,11 +1,15 @@ // GRANT-P09_9C // -// Grant: src=['autogroup:member', 'autogroup:tagged'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['autogroup:member', 'autogroup:tagged'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P09_9C", + "timestamp": "2026-04-05T22:09:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p09_9c.json", "full_policy": { "groups": { "group:admins": [ @@ -70,91 +74,341 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member", + "autogroup:tagged" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -166,28 +420,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -199,28 +1313,888 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -232,28 +2206,890 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -265,28 +3101,890 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -298,28 +3996,890 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -331,28 +4891,892 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -364,28 +5788,892 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ "100.103.8.15", "100.103.90.82", + "100.105.127.107", + "100.107.162.14", "100.108.74.26", + "100.109.43.124", "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", "100.83.200.69", "100.85.66.106", "100.90.199.68", "100.92.142.61", + "100.97.174.21", "fd7a:115c:a1e0::1737:7960", "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", "fd7a:115c:a1e0::7c37:426a", "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", "fd7a:115c:a1e0::b901:4a87", - "fd7a:115c:a1e0::c537:c845" + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ { @@ -397,7 +6685,845 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.8.15/32", + "100.103.90.82/32", + "100.105.127.107/32", + "100.107.162.14/32", + "100.108.74.26/32", + "100.109.43.124/32", + "100.110.121.96/32", + "100.116.18.24/32", + "100.117.104.82/32", + "100.119.241.111/32", + "100.121.186.70/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "100.83.200.69/32", + "100.85.66.106/32", + "100.90.199.68/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::5b37:80f/128", + "fd7a:115c:a1e0::6737:ba46/128", + "fd7a:115c:a1e0::7437:6852/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ad37:7f6b/128", + "fd7a:115c:a1e0::b901:4a87/128", + "fd7a:115c:a1e0::c537:c845/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.8.15", + "100.103.90.82", + "100.105.127.107", + "100.107.162.14", + "100.108.74.26", + "100.109.43.124", + "100.110.121.96", + "100.116.18.24", + "100.117.104.82", + "100.119.241.111", + "100.121.186.70", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "100.83.200.69", + "100.85.66.106", + "100.90.199.68", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::5b37:80f", + "fd7a:115c:a1e0::6737:ba46", + "fd7a:115c:a1e0::7437:6852", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ad37:7f6b", + "fd7a:115c:a1e0::b901:4a87", + "fd7a:115c:a1e0::c537:c845", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_1.hujson index 54895423..1e22befb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_1.hujson @@ -1,11 +1,15 @@ // GRANT-P10_1 // -// Grant: src=['*'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P10_1", + "timestamp": "2026-04-05T22:10:01Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p10_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,78 +73,311 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -153,15 +390,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -174,15 +1210,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -195,15 +2030,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -216,15 +2852,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -237,15 +3674,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -258,15 +4496,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,15 +5320,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -300,7 +6144,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_2.hujson index 011303aa..2058044d 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_2.hujson @@ -1,11 +1,15 @@ // GRANT-P10_2 // -// Grant: src=['tag:router'] dst=['tag:router'] ip=['*'] +// Grants: 1 +// src=['tag:router'] dst=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P10_2", + "timestamp": "2026-04-05T22:10:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p10_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,80 +73,482 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:router" + ], + "dst": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.92.142.61", - "fd7a:115c:a1e0::3e37:8e3d" + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.97.174.21/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5137:ae15/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -161,25 +567,578 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.92.142.61/32", + "100.97.174.21/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd7a:115c:a1e0::5137:ae15/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_3.hujson index a3d3e16a..c4eb9dc2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_3.hujson @@ -1,11 +1,15 @@ // GRANT-P10_3 // -// Grant: src=['*'] dst=['10.33.0.0/16'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P10_3", + "timestamp": "2026-04-05T22:10:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p10_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,81 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -156,25 +370,2057 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_4.hujson index 2fd35958..dab2cd57 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P10_4.hujson @@ -1,11 +1,15 @@ // GRANT-P10_4 // -// Grant: src=['autogroup:member'] dst=['10.33.0.0/16'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.33.0.0/16'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P10_4", + "timestamp": "2026-04-05T22:11:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p10_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,75 +73,172 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.33.0.0/16" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -158,25 +259,1147 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_1.hujson index 01008524..77e41579 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_1.hujson @@ -1,11 +1,15 @@ // GRANT-P11_1 // -// Grant: src=['*'] dst=['*'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['*'] // -// Expected: Rules on 8 nodes +// Nodes with filter rules: 8 of 8 { "test_id": "GRANT-P11_1", + "timestamp": "2026-04-05T22:11:31Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p11_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,78 +73,311 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "*" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -153,15 +390,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -174,15 +1210,814 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -195,15 +2030,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -216,15 +2852,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -237,15 +3674,816 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -258,15 +4496,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,15 +5320,818 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -300,7 +6144,800 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/0", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "::/0", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_2.hujson index 5922d707..6fb12f7c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_2.hujson @@ -1,11 +1,15 @@ // GRANT-P11_2 // -// Grant: src=['tag:exit'] dst=['tag:exit'] ip=['*'] +// Grants: 1 +// src=['tag:exit'] dst=['tag:exit'] // -// Expected: Rules on exit-node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P11_2", + "timestamp": "2026-04-05T22:11:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p11_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,77 +73,174 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:exit" + ], + "dst": [ + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", "100.85.66.106", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -149,37 +250,720 @@ "Last": 65535 } }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.105.127.107/32", + "100.119.241.111/32", + "100.85.66.106/32", + "fd7a:115c:a1e0::3337:f16f/128", + "fd7a:115c:a1e0::7c37:426a/128", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.85.66.106/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.105.127.107/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.119.241.111/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::3337:f16f/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7c37:426a/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ad37:7f6b/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_3.hujson index acf5e38d..c5f6cac8 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P11_3.hujson @@ -1,11 +1,15 @@ // GRANT-P11_3 // -// Grant: src=['autogroup:member'] dst=['autogroup:internet'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:internet'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P11_3", + "timestamp": "2026-04-05T22:12:15Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p11_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,1835 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:internet" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_1.hujson index 6d603810..98304b49 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_1.hujson @@ -1,11 +1,15 @@ // GRANT-P13_1 // -// Grant: src=['autogroup:member'] dst=['10.33.0.0/16'] ip=['22'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.33.0.0/16'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P13_1", + "timestamp": "2026-04-05T22:12:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p13_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,75 +73,172 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.33.0.0/16" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -158,25 +259,1147 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_2.hujson index b89794ff..1fd40e6a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_2.hujson @@ -1,11 +1,15 @@ // GRANT-P13_2 // -// Grant: src=['*'] dst=['10.33.0.0/16'] ip=['80-443'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P13_2", + "timestamp": "2026-04-05T22:13:00Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p13_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,81 +73,291 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "ip": [ + "80-443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -156,25 +370,2057 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_3.hujson index ffa0f253..5d40ef47 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_3.hujson @@ -1,11 +1,15 @@ // GRANT-P13_3 // -// Grant: src=['*'] dst=['10.33.0.0/16'] ip=['22', '80', '443'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P13_3", + "timestamp": "2026-04-05T22:13:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p13_3.json", "full_policy": { "groups": { "group:admins": [ @@ -71,81 +75,293 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "ip": [ + "22", + "80", + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ + "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -172,25 +388,2127 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_4.hujson index e77e90a7..3aa096bb 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P13_4.hujson @@ -1,11 +1,15 @@ // GRANT-P13_4 // -// Grant: src=['10.33.0.0/16'] dst=['autogroup:member'] ip=['*'] +// Grants: 1 +// src=['10.33.0.0/16'] dst=['autogroup:member'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-P13_4", + "timestamp": "2026-04-05T22:13:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p13_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,87 +73,857 @@ } ] }, + "grants_section": [ + { + "src": [ + "10.33.0.0/16" + ], + "dst": [ + "autogroup:member" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -172,9 +946,226 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.110.121.96/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::1737:7960/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -197,9 +1188,226 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.103.90.82/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::9e37:5a52/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -222,7 +1430,220 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.90.199.68/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::2d01:c747/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_1.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_1.hujson index 5135dd99..63c9ff38 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_1.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_1.hujson @@ -1,11 +1,15 @@ // GRANT-P15_1 // -// Grant: src=['autogroup:member'] dst=['10.33.1.0/24'] ip=['22'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.33.1.0/24'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P15_1", + "timestamp": "2026-04-05T22:14:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p15_1.json", "full_policy": { "groups": { "group:admins": [ @@ -69,75 +73,172 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.33.1.0/24" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -158,25 +259,1147 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_2.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_2.hujson index 974fcac7..c79c10ce 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_2.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_2.hujson @@ -1,11 +1,15 @@ // GRANT-P15_2 // -// Grant: src=['autogroup:member'] dst=['10.1.0.0/16'] ip=['22'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.1.0.0/16'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P15_2", + "timestamp": "2026-04-05T22:14:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p15_2.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,808 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.1.0.0/16" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.1.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.1.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.1.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_3.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_3.hujson index 32d2eba9..bb6e2efe 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_3.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_3.hujson @@ -1,11 +1,15 @@ // GRANT-P15_3 // -// Grant: src=['autogroup:member'] dst=['10.32.0.0/14'] ip=['22'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.32.0.0/14'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P15_3", + "timestamp": "2026-04-05T22:14:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p15_3.json", "full_policy": { "groups": { "group:admins": [ @@ -69,75 +73,172 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.32.0.0/14" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null - }, - "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -158,25 +259,1147 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.32.0.0/14", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.32.0.0/14", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.32.0.0/14", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.32.0.0/14", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.32.0.0/14", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_4.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_4.hujson index 0de845ee..76cdf0b2 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_4.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_4.hujson @@ -1,11 +1,15 @@ // GRANT-P15_4 // -// Grant: src=['autogroup:member'] dst=['8.8.8.0/24'] ip=['53'] +// Grants: 1 +// src=['autogroup:member'] dst=['8.8.8.0/24'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P15_4", + "timestamp": "2026-04-05T22:15:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p15_4.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,1422 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "8.8.8.0/24" + ], + "ip": [ + "53" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_5.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_5.hujson index ecb5ddb6..a2068971 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_5.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_5.hujson @@ -1,11 +1,15 @@ // GRANT-P15_5 // -// Grant: src=['autogroup:member'] dst=['10.32.0.100/32'] ip=['80'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.32.0.100/32'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-P15_5", + "timestamp": "2026-04-05T22:15:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p15_5.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,808 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.32.0.100/32" + ], + "ip": [ + "80" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.32.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.32.0.100/32", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.32.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_6.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_6.hujson index 19588315..17bfb211 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_6.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-P15_6.hujson @@ -1,11 +1,15 @@ // GRANT-P15_6 // -// Grant: src=['autogroup:member'] dst=['fd00:1::/64'] ip=['443'] +// Grants: 1 +// src=['autogroup:member'] dst=['fd00:1::/64'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-P15_6", + "timestamp": "2026-04-05T22:15:56Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "grant_policies/grant_p15_6.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,1214 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "fd00:1::/64" + ], + "ip": [ + "443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + }, + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + }, + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V01.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V01.hujson index c5dadb5c..daf5c8ec 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V01.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V01.hujson @@ -1,12 +1,14 @@ // GRANT-V01 // -// Grant: src=['*'] dst=['autogroup:internet'] app={example.com/cap/internet-access} -// -// Expected: Error (HTTP 400) — cannot use app grants with autogroup:internet +// Grants: 1 +// src=['*'] dst=['autogroup:internet'] app=['example.com/cap/internet-access'] { "test_id": "GRANT-V01", + "description": "", + "timestamp": "2026-02-23T15:12:54Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v01.json", "full_policy": { "groups": { "group:admins": [ @@ -74,6 +76,25 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:internet" + ], + "app": { + "example.com/cap/internet-access": [ + { + "level": "full" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "cannot use app grants with autogroup:internet" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V02.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V02.hujson index e4fcb381..1c5ebc0e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V02.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V02.hujson @@ -1,11 +1,15 @@ // GRANT-V02 // -// Grant: src=['*'] dst=['tag:exit'] app={example.com/cap/exit-control} +// Grants: 1 +// src=['*'] dst=['tag:exit'] app=['example.com/cap/exit-control'] // -// Expected: Rules on exit-node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V02", + "timestamp": "2026-02-23T15:39:40Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v02.json", "full_policy": { "groups": { "group:admins": [ @@ -73,72 +77,135 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:exit" + ], + "app": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -163,28 +230,1190 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/exit-control", + "Values": [ + { + "mode": "full" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/exit-control", + "Values": [ + { + "mode": "full" + } + ] + } + ] + } + ], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/exit-control": [ + { + "mode": "full" + } + ] + } + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V03.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V03.hujson index e51c94b1..a445d8be 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V03.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V03.hujson @@ -1,11 +1,15 @@ // GRANT-V03 // -// Grant: src=['*'] dst=['tag:router'] app={example.com/cap/router-admin} +// Grants: 1 +// src=['*'] dst=['tag:router'] app=['example.com/cap/router-admin'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V03", + "timestamp": "2026-02-23T15:39:49Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v03.json", "full_policy": { "groups": { "group:admins": [ @@ -73,75 +77,233 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:router" + ], + "app": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -166,25 +328,1088 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/router-admin", + "Values": [ + { + "role": "admin" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/router-admin", + "Values": [ + { + "role": "admin" + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/router-admin": [ + { + "role": "admin" + } + ] + } + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V04.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V04.hujson index 8d001b03..1e73b371 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V04.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V04.hujson @@ -1,12 +1,14 @@ // GRANT-V04 // -// Grant: src=['*'] dst=['0.0.0.0/0'] app={example.com/cap/global-access} -// -// Expected: Error (HTTP 400) — dst "0.0.0.0/0": to allow all IP addresses, use "*" or "autogroup:internet" +// Grants: 1 +// src=['*'] dst=['0.0.0.0/0'] app=['example.com/cap/global-access'] { "test_id": "GRANT-V04", + "description": "", + "timestamp": "2026-02-23T15:39:59Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v04.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "0.0.0.0/0" + ], + "app": { + "example.com/cap/global-access": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "dst \"0.0.0.0/0\": to allow all IP addresses, use \"*\" or \"autogroup:internet\"" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V05.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V05.hujson index 8600b387..eec317f6 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V05.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V05.hujson @@ -1,12 +1,14 @@ // GRANT-V05 // -// Grant: src=['*'] dst=['::/0'] app={example.com/cap/global-v6} -// -// Expected: Error (HTTP 400) — dst "::/0": to allow all IP addresses, use "*" or "autogroup:internet" +// Grants: 1 +// src=['*'] dst=['::/0'] app=['example.com/cap/global-v6'] { "test_id": "GRANT-V05", + "description": "", + "timestamp": "2026-02-23T15:39:59Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v05.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "::/0" + ], + "app": { + "example.com/cap/global-v6": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "dst \"::/0\": to allow all IP addresses, use \"*\" or \"autogroup:internet\"" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V06.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V06.hujson index 6a6bb2f4..8b1d3093 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V06.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V06.hujson @@ -1,11 +1,15 @@ // GRANT-V06 // -// Grant: src=['*'] dst=['tag:server', 'tag:exit'] app={example.com/cap/multi-dst} +// Grants: 1 +// src=['*'] dst=['tag:server', 'tag:exit'] app=['example.com/cap/multi-dst'] // -// Expected: Rules on exit-node, tagged-server +// Nodes with filter rules: 2 of 8 { "test_id": "GRANT-V06", + "timestamp": "2026-02-23T15:39:59Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v06.json", "full_policy": { "groups": { "group:admins": [ @@ -74,72 +78,136 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:server", + "tag:exit" + ], + "app": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -164,18 +232,963 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/multi-dst", + "Values": [ + { + "scope": "both" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/multi-dst", + "Values": [ + { + "scope": "both" + } + ] + } + ] + } + ], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -200,16 +1213,957 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.108.74.26/32", + "Cap": "example.com/cap/multi-dst", + "Values": [ + { + "scope": "both" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::b901:4a87/128", + "Cap": "example.com/cap/multi-dst", + "Values": [ + { + "scope": "both" + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/multi-dst": [ + { + "scope": "both" + } + ] + } + } + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V07.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V07.hujson index 510f70eb..4bdd312c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V07.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V07.hujson @@ -1,11 +1,15 @@ // GRANT-V07 // -// Grant: src=['*'] dst=['autogroup:internet'] ip=['tcp:443'] +// Grants: 1 +// src=['*'] dst=['autogroup:internet'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 0 of 8 { "test_id": "GRANT-V07", + "timestamp": "2026-02-23T15:40:09Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v07.json", "full_policy": { "groups": { "group:admins": [ @@ -69,94 +73,485 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:internet" + ], + "ip": [ + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V08.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V08.hujson index f47c9d45..2832992d 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V08.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V08.hujson @@ -1,12 +1,14 @@ // GRANT-V08 // -// Grant: src=['*'] dst=['0.0.0.0/0'] ip=['tcp:80', 'tcp:443'] -// -// Expected: Error (HTTP 400) — dst "0.0.0.0/0": to allow all IP addresses, use "*" or "autogroup:internet" +// Grants: 1 +// src=['*'] dst=['0.0.0.0/0'] { "test_id": "GRANT-V08", + "description": "", + "timestamp": "2026-02-23T15:40:19Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v08.json", "full_policy": { "groups": { "group:admins": [ @@ -71,6 +73,22 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "0.0.0.0/0" + ], + "ip": [ + "tcp:80", + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "dst \"0.0.0.0/0\": to allow all IP addresses, use \"*\" or \"autogroup:internet\"" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V09.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V09.hujson index 09b2d410..cad7c2c3 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V09.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V09.hujson @@ -1,11 +1,15 @@ // GRANT-V09 // -// Grant: src=['*'] dst=['tag:exit'] ip=['tcp:443'] app={example.com/cap/exit-mixed} +// Grants: 1 +// src=['*'] dst=['tag:exit'] app=['example.com/cap/exit-mixed'] // -// Expected: Rules on exit-node +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V09", + "timestamp": "2026-02-23T15:40:19Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v09.json", "full_policy": { "groups": { "group:admins": [ @@ -76,72 +80,138 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:exit" + ], + "ip": [ + "tcp:443" + ], + "app": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -193,28 +263,1230 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.85.66.106/32", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "fd7a:115c:a1e0::7c37:426a/128", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "example.com/cap/exit-mixed", + "Values": [ + { + "mode": "proxy" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "example.com/cap/exit-mixed", + "Values": [ + { + "mode": "proxy" + } + ] + } + ] + } + ], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/exit-mixed": [ + { + "mode": "proxy" + } + ] + } + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V10.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V10.hujson index 4ca81d07..179e7ce4 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V10.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V10.hujson @@ -1,11 +1,15 @@ // GRANT-V10 // -// Grant: src=['*'] dst=['tag:router'] ip=['tcp:80'] app={example.com/cap/router-mixed} +// Grants: 1 +// src=['*'] dst=['tag:router'] app=['example.com/cap/router-mixed'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V10", + "timestamp": "2026-02-23T15:40:28Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v10.json", "full_policy": { "groups": { "group:admins": [ @@ -76,75 +80,236 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "tag:router" + ], + "ip": [ + "tcp:80" + ], + "app": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -196,25 +361,1128 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.92.142.61/32", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "fd7a:115c:a1e0::3e37:8e3d/128", + "Ports": { + "First": 80, + "Last": 80 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "example.com/cap/router-mixed", + "Values": [ + { + "role": "viewer" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "example.com/cap/router-mixed", + "Values": [ + { + "role": "viewer" + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "example.com/cap/router-mixed": [ + { + "role": "viewer" + } + ] + } + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V11.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V11.hujson index 84496197..b7617619 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V11.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V11.hujson @@ -1,11 +1,15 @@ // GRANT-V11 // -// Grant: src=['tag:client'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['*'] +// Grants: 1 +// src=['tag:client'] dst=['10.33.0.0/16'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V11", + "timestamp": "2026-02-23T15:40:38Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v11.json", "full_policy": { "groups": { "group:admins": [ @@ -72,75 +76,179 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -157,25 +265,449 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V12.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V12.hujson index 54556436..146f7b43 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V12.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V12.hujson @@ -1,11 +1,15 @@ // GRANT-V12 // -// Grant: src=['autogroup:member'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['*'] +// Grants: 1 +// src=['autogroup:member'] dst=['10.33.0.0/16'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V12", + "timestamp": "2026-02-23T15:40:48Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v12.json", "full_policy": { "groups": { "group:admins": [ @@ -72,75 +76,179 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -161,25 +269,667 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V13.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V13.hujson index 9ff2c9af..aaa4395c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V13.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V13.hujson @@ -1,11 +1,15 @@ // GRANT-V13 // -// Grant: src=['group:developers'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['tcp:80', 'tcp:443'] +// Grants: 1 +// src=['group:developers'] dst=['10.33.0.0/16'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V13", + "timestamp": "2026-02-23T15:40:58Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v13.json", "full_policy": { "groups": { "group:admins": [ @@ -73,75 +77,180 @@ } ] }, + "grants_section": [ + { + "src": [ + "group:developers" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "tcp:80", + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -170,25 +279,561 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V14.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V14.hujson index 99eac87b..cd8e6bdf 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V14.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V14.hujson @@ -1,11 +1,15 @@ // GRANT-V14 // -// Grant: src=['tag:client'] dst=['autogroup:internet'] via=['tag:exit'] ip=['*'] +// Grants: 1 +// src=['tag:client'] dst=['autogroup:internet'] via=['tag:exit'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V14", + "timestamp": "2026-04-05T22:20:21Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v14.json", "full_policy": { "groups": { "group:admins": [ @@ -100,231 +104,3058 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V15.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V15.hujson index e5cad124..c7b4e09c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V15.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V15.hujson @@ -1,11 +1,15 @@ // GRANT-V15 // -// Grant: src=['*'] dst=['autogroup:internet'] via=['tag:exit'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['autogroup:internet'] via=['tag:exit'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V15", + "timestamp": "2026-04-05T22:20:58Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v15.json", "full_policy": { "groups": { "group:admins": [ @@ -100,231 +104,7090 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V16.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V16.hujson index 73f3811d..bc98bcdd 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V16.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V16.hujson @@ -1,11 +1,15 @@ // GRANT-V16 // -// Grant: src=['tag:client', 'autogroup:member'] dst=['autogroup:internet'] via=['tag:exit'] ip=['*'] +// Grants: 1 +// src=['tag:client', 'autogroup:member'] dst=['autogroup:internet'] via=['tag:exit'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V16", + "timestamp": "2026-04-05T22:21:35Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v16.json", "full_policy": { "groups": { "group:admins": [ @@ -101,231 +105,3968 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client", + "autogroup:member" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.83.200.69/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.83.200.69", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V17.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V17.hujson index 1b4690e2..49b5a09e 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V17.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V17.hujson @@ -1,11 +1,15 @@ // GRANT-V17 // -// Grant: src=['*'] dst=['10.33.0.0/16', '192.168.1.0/24'] via=['tag:router'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16', '192.168.1.0/24'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V17", + "timestamp": "2026-02-23T15:41:15Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v17.json", "full_policy": { "groups": { "group:admins": [ @@ -73,75 +77,237 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16", + "192.168.1.0/24" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -160,25 +326,1059 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V18.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V18.hujson index 64bd5522..618e101f 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V18.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V18.hujson @@ -1,12 +1,14 @@ // GRANT-V18 // -// Grant: src=['*'] dst=['0.0.0.0/0'] via=['tag:exit'] app={example.com/cap/exit-via-app} -// -// Expected: Error (HTTP 400) — dst "0.0.0.0/0": to allow all IP addresses, use "*" or "autogroup:internet" +// Grants: 1 +// src=['*'] dst=['0.0.0.0/0'] via=['tag:exit'] app=['example.com/cap/exit-via-app'] { "test_id": "GRANT-V18", + "description": "", + "timestamp": "2026-02-23T15:41:24Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v18.json", "full_policy": { "groups": { "group:admins": [ @@ -75,6 +77,26 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "0.0.0.0/0" + ], + "via": [ + "tag:exit" + ], + "app": { + "example.com/cap/exit-via-app": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "dst \"0.0.0.0/0\": to allow all IP addresses, use \"*\" or \"autogroup:internet\"" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V19.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V19.hujson index 2ff38da2..a0205956 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V19.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V19.hujson @@ -1,11 +1,15 @@ // GRANT-V19 // -// Grant: src=['autogroup:member'] dst=['tag:exit'] app={tailscale.com/cap/drive} +// Grants: 1 +// src=['autogroup:member'] dst=['tag:exit'] app=['tailscale.com/cap/drive'] // -// Expected: Rules on exit-node, user-kris, user-mon, user1 +// Nodes with filter rules: 4 of 8 { "test_id": "GRANT-V19", + "timestamp": "2026-02-23T15:41:24Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v19.json", "full_policy": { "groups": { "group:admins": [ @@ -76,72 +80,138 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:exit" + ], + "app": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -171,21 +241,456 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.85.66.106/32", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::7c37:426a/128", + "Cap": "tailscale.com/cap/drive", + "Values": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + ] + } + ], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/drive": [ + { + "shares": [ + "*" + ], + "access": "rw" + } + ] + } + } + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -204,9 +709,133 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -225,9 +854,133 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -246,7 +999,127 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "tailscale.com/cap/drive-sharer", + "Values": null + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": { + "tailscale.com/cap/drive-sharer": null + } + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V20.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V20.hujson index 448f2114..6055c8aa 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V20.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V20.hujson @@ -1,11 +1,15 @@ // GRANT-V20 // -// Grant: src=['autogroup:member'] dst=['tag:router'] app={tailscale.com/cap/kubernetes} +// Grants: 1 +// src=['autogroup:member'] dst=['tag:router'] app=['tailscale.com/cap/kubernetes'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V20", + "timestamp": "2026-02-23T15:41:34Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v20.json", "full_policy": { "groups": { "group:admins": [ @@ -77,75 +81,184 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:router" + ], + "app": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -176,25 +289,704 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.92.142.61/32", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::3e37:8e3d/128", + "Cap": "tailscale.com/cap/kubernetes", + "Values": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": { + "tailscale.com/cap/kubernetes": [ + { + "impersonate": { + "groups": [ + "system:masters" + ] + } + } + ] + } + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V21.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V21.hujson index 627fa127..37182555 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V21.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V21.hujson @@ -1,11 +1,15 @@ // GRANT-V21 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router', 'tag:exit'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router', 'tag:exit'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V21", + "timestamp": "2026-02-23T15:41:43Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v21.json", "full_policy": { "groups": { "group:admins": [ @@ -73,75 +77,237 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router", + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -160,25 +326,1059 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V22.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V22.hujson index d978b453..f94ad2ec 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V22.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V22.hujson @@ -1,12 +1,14 @@ // GRANT-V22 // -// Grant: src=['autogroup:member'] dst=['autogroup:internet'] ip=['tcp:443'] app={example.com/cap/internet-mixed} -// -// Expected: Error (HTTP 400) — cannot use app grants with autogroup:internet +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:internet'] app=['example.com/cap/internet-mixed'] { "test_id": "GRANT-V22", + "description": "", + "timestamp": "2026-02-23T15:41:52Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v22.json", "full_policy": { "groups": { "group:admins": [ @@ -77,6 +79,28 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:internet" + ], + "ip": [ + "tcp:443" + ], + "app": { + "example.com/cap/internet-mixed": [ + { + "proxy": "yes" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "cannot use app grants with autogroup:internet" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V23.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V23.hujson index 1cd45056..d1fc18cf 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V23.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V23.hujson @@ -1,11 +1,15 @@ // GRANT-V23 // -// Grant: src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['tcp:22', 'tcp:80', 'tcp:443'] +// Grants: 1 +// src=['*'] dst=['10.33.0.0/16'] via=['tag:router'] // -// Expected: Rules on subnet-router +// Nodes with filter rules: 1 of 8 { "test_id": "GRANT-V23", + "timestamp": "2026-02-23T15:41:53Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v23.json", "full_policy": { "groups": { "group:admins": [ @@ -74,75 +78,238 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "tcp:22", + "tcp:80", + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -178,25 +345,1070 @@ 6 ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "10.33.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:90f4a7b9dc024f1ddec414a49de2aa7611a2dd86efc9d7bae30862ad7c954269", + "DiscoKey": "discokey:701f9ed9296436d3251a9d00d061859edb5ee55602bc0ecf7c64330adc77c815", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:47924", + "10.65.0.27:47924", + "172.17.0.1:47924", + "172.18.0.1:47924", + "172.19.0.1:47924" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:7e9099516456f84f9af01c51ce03bc38764c4c02bf6c73a6d4b2495771a6c449", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:47452", + "10.65.0.27:47452", + "172.17.0.1:47452", + "172.18.0.1:47452", + "172.19.0.1:47452" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:2dd2ca7f9f1378d3ec23a7d6ba57a735032f9a4f90b6c95b2c2385950ec7ae45", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:54907", + "10.65.0.27:54907", + "172.17.0.1:54907", + "172.18.0.1:54907", + "172.19.0.1:54907" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:9f71ff1e1652916263ef05d0a5e9d9e18239aa598f956b24c563c03a1088cb39", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:34495", + "10.65.0.27:34495", + "172.17.0.1:34495", + "172.18.0.1:34495", + "172.19.0.1:34495" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:9841ea823abefc7197a67b2b33ba551868a344e64ecd27e00d1a100e5e9e5427", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:42311", + "10.65.0.27:42311", + "172.17.0.1:42311", + "172.18.0.1:42311", + "172.19.0.1:42311" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:733598f0f74431b5b2b28fb5980d8b2f79b5ca5524664998d1d011a651643211", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:50398", + "10.65.0.27:50398", + "172.17.0.1:50398", + "172.18.0.1:50398", + "172.19.0.1:50398" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:203d3bfbd67a06d210c027c546a05658fba93aeaea5042b12d50b93d31a5d156", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:44240", + "10.65.0.27:44240", + "172.17.0.1:44240", + "172.18.0.1:44240", + "172.19.0.1:44240" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:9779fa96e2ddcd3dac863acc09b50304481964bfb3bccf52ff79d95bbd1a031d", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57299", + "10.65.0.27:57299", + "172.17.0.1:57299", + "172.18.0.1:57299", + "172.19.0.1:57299" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V24.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V24.hujson index 09c932b5..e49b22d6 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V24.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V24.hujson @@ -1,12 +1,14 @@ // GRANT-V24 // -// Grant: src=['tag:server'] dst=['autogroup:self'] app={example.com/cap/self-cap} -// -// Expected: Error (HTTP 400) — autogroup:self can only be used with users, groups, or supported autogroups +// Grants: 1 +// src=['tag:server'] dst=['autogroup:self'] app=['example.com/cap/self-cap'] { "test_id": "GRANT-V24", + "description": "", + "timestamp": "2026-02-23T15:42:03Z", "error": true, "input": { + "policy_file": "grant_policies_v2/grant_v24.json", "full_policy": { "groups": { "group:admins": [ @@ -72,6 +74,23 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:server" + ], + "dst": [ + "autogroup:self" + ], + "app": { + "example.com/cap/self-cap": [ + {} + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 400, "api_response_body": { "message": "autogroup:self can only be used with users, groups, or supported autogroups" diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V25.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V25.hujson index a05fe4ff..ced41728 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V25.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V25.hujson @@ -1,11 +1,15 @@ // GRANT-V25 // -// Grant: src=['autogroup:member'] dst=['autogroup:self'] app={example.com/cap/self-test} +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:self'] app=['example.com/cap/self-test'] // -// Expected: Rules on user-kris, user-mon, user1 +// Nodes with filter rules: 3 of 8 { "test_id": "GRANT-V25", + "timestamp": "2026-02-23T15:42:04Z", + "propagation_wait_seconds": 8, "input": { + "policy_file": "grant_policies_v2/grant_v25.json", "full_policy": { "groups": { "group:admins": [ @@ -73,87 +77,360 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:self" + ], + "app": { + "example.com/cap/self-test": [ + { + "level": "basic" + } + ] + } + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-node": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "subnet-router": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-client": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-prod": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "tagged-server": { - "packet_filter_rules": null + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -176,9 +453,86 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.110.121.96/32", + "Cap": "example.com/cap/self-test", + "Values": [ + { + "level": "basic" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::1737:7960/128", + "Cap": "example.com/cap/self-test", + "Values": [ + { + "level": "basic" + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -201,9 +555,86 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.103.90.82/32", + "Cap": "example.com/cap/self-test", + "Values": [ + { + "level": "basic" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::9e37:5a52/128", + "Cap": "example.com/cap/self-test", + "Values": [ + { + "level": "basic" + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -226,7 +657,80 @@ } ] } - ] + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "SrcCaps": null, + "Dsts": [], + "Caps": [ + { + "Dst": "100.90.199.68/32", + "Cap": "example.com/cap/self-test", + "Values": [ + { + "level": "basic" + } + ] + }, + { + "Dst": "fd7a:115c:a1e0::2d01:c747/128", + "Cap": "example.com/cap/self-test", + "Values": [ + { + "level": "basic" + } + ] + } + ] + } + ], + "whois": { + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V26.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V26.hujson index 3ecdcb37..2006581a 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V26.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V26.hujson @@ -1,11 +1,15 @@ // GRANT-V26 // -// Grant: src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] ip=['*'] +// Grants: 1 +// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 15 { "test_id": "GRANT-V26", + "timestamp": "2026-04-05T22:22:11Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v26.json", "full_policy": { "groups": { "group:admins": [ @@ -100,231 +104,2412 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-a": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } + ] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V27.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V27.hujson index 0aa3cde1..b8bbc452 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V27.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V27.hujson @@ -1,11 +1,15 @@ // GRANT-V27 // -// Grant: src=['autogroup:member'] dst=['autogroup:internet'] via=['tag:exit'] ip=['tcp:443'] +// Grants: 1 +// src=['autogroup:member'] dst=['autogroup:internet'] via=['tag:exit'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V27", + "timestamp": "2026-04-05T22:22:48Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v27.json", "full_policy": { "groups": { "group:admins": [ @@ -100,231 +104,3662 @@ } ] }, + "grants_section": [ + { + "src": [ + "autogroup:member" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit" + ], + "ip": [ + "tcp:443" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 443, + "Last": 443 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 443, + "Last": 443 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V28.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V28.hujson index 14185ecb..36442289 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V28.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V28.hujson @@ -1,13 +1,16 @@ // GRANT-V28 // -// Grants: -// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] ip=['*'] -// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-b'] ip=['*'] +// Grants: 2 +// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] +// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-b'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V28", + "timestamp": "2026-04-05T22:23:25Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v28.json", "full_policy": { "groups": { "group:admins": [ @@ -116,231 +119,3036 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-b" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-a": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } + ] } }, "exit-b": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + } + ] } }, "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + } + ] } }, "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V29.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V29.hujson index 3c8e299a..db085653 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V29.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V29.hujson @@ -1,18 +1,16 @@ // GRANT-V29 // -// WARNING: This file is consumed by TWO tests: -// 1. TestGrantsCompat (hscontrol/policy/v2/) — compares packet_filter_rules -// 2. TestViaGrantMapCompat (hscontrol/servertest/) — compares netmap structure -// Do NOT remove the 'netmap' field — it is required by TestViaGrantMapCompat. +// Grants: 2 +// src=['tag:group-a'] dst=['10.44.0.0/16'] via=['tag:router-a'] +// src=['tag:group-b'] dst=['10.55.0.0/16'] via=['tag:router-b'] // -// Grants: -// src=['tag:group-a'] dst=['10.44.0.0/16'] via=['tag:router-a'] ip=['*'] -// src=['tag:group-b'] dst=['10.55.0.0/16'] via=['tag:router-b'] ip=['*'] -// -// Expected: Rules on router-a, router-b +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V29", + "timestamp": "2026-04-05T22:24:02Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v29.json", "full_policy": { "groups": { "group:admins": [ @@ -121,155 +119,753 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:group-a" + ], + "dst": [ + "10.44.0.0/16" + ], + "via": [ + "tag:router-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "10.55.0.0/16" + ], + "via": [ + "tag:router-b" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], "AllowedIPs": [ "100.109.43.124/32", "fd7a:115c:a1e0::a537:2b7c/128", @@ -277,18 +873,174 @@ ], "PrimaryRoutes": [ "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" ] } - ], - "PacketFilterRules": null + ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], "AllowedIPs": [ "100.65.172.123/32", "fd7a:115c:a1e0::5a37:ac7c/128", @@ -296,20 +1048,128 @@ ], "PrimaryRoutes": [ "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" ] } - ], - "PacketFilterRules": null + ] } }, "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -327,17 +1187,155 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.44.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -354,10 +1352,51 @@ } ] } + ], + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } ] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -375,17 +1414,155 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.55.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -402,56 +1579,750 @@ } ] } + ], + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + } ] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V30.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V30.hujson index 520897ef..8e0a8c29 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V30.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V30.hujson @@ -1,20 +1,18 @@ // GRANT-V30 // -// WARNING: This file is consumed by TWO tests: -// 1. TestGrantsCompat (hscontrol/policy/v2/) — compares packet_filter_rules -// 2. TestViaGrantMapCompat (hscontrol/servertest/) — compares netmap structure -// Do NOT remove the 'netmap' field — it is required by TestViaGrantMapCompat. +// Grants: 4 +// src=['tag:group-a'] dst=['10.44.0.0/16'] via=['tag:router-a'] +// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-b'] +// src=['tag:group-b'] dst=['10.55.0.0/16'] via=['tag:router-b'] +// ... and 1 more // -// Grants: -// src=['tag:group-a'] dst=['10.44.0.0/16'] via=['tag:router-a'] ip=['*'] -// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-b'] ip=['*'] -// src=['tag:group-b'] dst=['10.55.0.0/16'] via=['tag:router-b'] ip=['*'] -// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-a'] ip=['*'] -// -// Expected: Rules on router-a, router-b +// Nodes with filter rules: 4 of 15 { "test_id": "GRANT-V30", + "timestamp": "2026-04-05T22:24:38Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v30.json", "full_policy": { "groups": { "group:admins": [ @@ -151,155 +149,1909 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:group-a" + ], + "dst": [ + "10.44.0.0/16" + ], + "via": [ + "tag:router-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "10.55.0.0/16" + ], + "via": [ + "tag:router-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-a": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + } + ] } }, "exit-b": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } + ] } }, "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], "AllowedIPs": [ "100.109.43.124/32", "fd7a:115c:a1e0::a537:2b7c/128", @@ -307,18 +2059,247 @@ ], "PrimaryRoutes": [ "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" ] } - ], - "PacketFilterRules": null + ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], "AllowedIPs": [ "100.65.172.123/32", "fd7a:115c:a1e0::5a37:ac7c/128", @@ -326,20 +2307,145 @@ ], "PrimaryRoutes": [ "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" ] } - ], - "PacketFilterRules": null + ] } }, "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -357,17 +2463,155 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.44.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -384,10 +2628,51 @@ } ] } + ], + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } ] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -405,17 +2690,155 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.55.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -432,56 +2855,750 @@ } ] } + ], + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + } ] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V31-SLOW.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V31-SLOW.hujson new file mode 100644 index 00000000..956c0ad9 --- /dev/null +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V31-SLOW.hujson @@ -0,0 +1,2463 @@ +// GRANT-V31-SLOW +// +// Grants: 3 +// src=['tag:exit-a', 'tag:exit-b', 'tag:group-a', 'tag:group-b'] dst=['tag:exit-a', 'tag:exit-b', 'tag:group-a', 'tag:group-b'] +// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] +// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-b'] +// +// Nodes with filter rules: 4 of 15 +{ + "test_id": "GRANT-V31-SLOW", + "timestamp": "2026-03-28T10:42:13Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "grant_policies_via/grant_v31.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:exit-a": [ + "kratail2tid@passkey" + ], + "tag:exit-b": [ + "kratail2tid@passkey" + ], + "tag:group-a": [ + "kratail2tid@passkey" + ], + "tag:group-b": [ + "kratail2tid@passkey" + ], + "tag:router-a": [ + "kratail2tid@passkey" + ], + "tag:router-b": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8" + }, + "autoApprovers": { + "routes": { + "10.33.0.0/16": [ + "tag:router" + ], + "10.44.0.0/16": [ + "tag:router-a" + ], + "10.55.0.0/16": [ + "tag:router-b" + ], + "0.0.0.0/0": [ + "tag:exit", + "tag:exit-a", + "tag:exit-b" + ], + "::/0": [ + "tag:exit", + "tag:exit-a", + "tag:exit-b" + ] + } + }, + "grants": [ + { + "src": [ + "tag:exit-a", + "tag:exit-b", + "tag:group-a", + "tag:group-b" + ], + "dst": [ + "tag:exit-a", + "tag:exit-b", + "tag:group-a", + "tag:group-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-b" + ], + "ip": [ + "*" + ] + } + ] + }, + "grants_section": [ + { + "src": [ + "tag:exit-a", + "tag:exit-b", + "tag:group-a", + "tag:group-b" + ], + "dst": [ + "tag:exit-a", + "tag:exit-b", + "tag:group-a", + "tag:group-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-b" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", + "hostname": "exit-a", + "user_id": 3118755726458377, + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", + "hostname": "exit-b", + "user_id": 2230775583277936, + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", + "hostname": "exit-node", + "user_id": 4041918547170221, + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [], + "approved_routes": [] + }, + "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", + "hostname": "group-a-client", + "user_id": 6999435610919250, + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + }, + "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", + "hostname": "group-b-client", + "user_id": 1008089393782498, + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", + "hostname": "multi-exit-router", + "user_id": 6294409699640722, + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", + "hostname": "router-a", + "user_id": 50590507314324, + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", + "hostname": "router-b", + "user_id": 1399889648409786, + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [], + "approved_routes": [] + }, + "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", + "hostname": "subnet-router", + "user_id": 7489538288452506, + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", + "hostname": "tagged-client", + "user_id": 4031348162889210, + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", + "hostname": "tagged-prod", + "user_id": 301794218943819, + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", + "hostname": "tagged-server", + "user_id": 1440249486084758, + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", + "hostname": "user-kris", + "user_id": 4538565228176803, + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", + "hostname": "user-mon", + "user_id": 3982058329734709, + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", + "hostname": "user1", + "user_id": 4156223528223174, + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:63071b08ff89860a2d98005f8f6f65f3b92e05b7b1338b1be71e4ad866f12728", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:35565", + "10.65.0.27:35565", + "172.17.0.1:35565" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:bc93c2d3b81606e44eb1c96d721e7cd73c9497aa7d3efbe2f5e0d1e2e95b190f", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:51980", + "10.65.0.27:51980", + "172.17.0.1:51980" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:e972182cda0d0b459c91b2881624b81749a7e44390a5dde1b9bc17c1ae67715a", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:49377", + "10.65.0.27:49377", + "172.17.0.1:49377" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:0c8595f67987ed47cf551646d6266c21a635d622409d10745cc08f6922066e49", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:37550", + "10.65.0.27:37550", + "172.17.0.1:37550" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:bc93c2d3b81606e44eb1c96d721e7cd73c9497aa7d3efbe2f5e0d1e2e95b190f", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:51980", + "10.65.0.27:51980", + "172.17.0.1:51980" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:e972182cda0d0b459c91b2881624b81749a7e44390a5dde1b9bc17c1ae67715a", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:49377", + "10.65.0.27:49377", + "172.17.0.1:49377" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:0c8595f67987ed47cf551646d6266c21a635d622409d10745cc08f6922066e49", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:37550", + "10.65.0.27:37550", + "172.17.0.1:37550" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:63071b08ff89860a2d98005f8f6f65f3b92e05b7b1338b1be71e4ad866f12728", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:35565", + "10.65.0.27:35565", + "172.17.0.1:35565" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:e972182cda0d0b459c91b2881624b81749a7e44390a5dde1b9bc17c1ae67715a", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:49377", + "10.65.0.27:49377", + "172.17.0.1:49377" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:0c8595f67987ed47cf551646d6266c21a635d622409d10745cc08f6922066e49", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:37550", + "10.65.0.27:37550", + "172.17.0.1:37550" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:63071b08ff89860a2d98005f8f6f65f3b92e05b7b1338b1be71e4ad866f12728", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:35565", + "10.65.0.27:35565", + "172.17.0.1:35565" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:bc93c2d3b81606e44eb1c96d721e7cd73c9497aa7d3efbe2f5e0d1e2e95b190f", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:51980", + "10.65.0.27:51980", + "172.17.0.1:51980" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + } + }, + "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V31.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V31.hujson index 221bcdd7..3e1a43a4 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V31.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V31.hujson @@ -1,19 +1,17 @@ // GRANT-V31 // -// WARNING: This file is consumed by TWO tests: -// 1. TestGrantsCompat (hscontrol/policy/v2/) — compares packet_filter_rules -// 2. TestViaGrantMapCompat (hscontrol/servertest/) — compares netmap structure -// Do NOT remove the 'netmap' field — it is required by TestViaGrantMapCompat. +// Grants: 3 +// src=['tag:exit-a', 'tag:exit-b', 'tag:group-a', 'tag:group-b'] dst=['tag:exit-a', 'tag:exit-b', 'tag:group-a', 'tag:group-b'] +// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] +// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-b'] // -// Grants: -// src=['tag:exit-a', 'tag:exit-b', 'tag:group-a', 'tag:group-b'] dst=['tag:exit-a', 'tag:exit-b', 'tag:group-a', 'tag:group-b'] ip=['*'] -// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-a'] ip=['*'] -// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-b'] ip=['*'] -// -// Expected: Rules on exit-a, exit-b, group-a-client, group-b-client +// Nodes with filter rules: 6 of 15 { "test_id": "GRANT-V31", + "timestamp": "2026-04-05T22:25:15Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v31.json", "full_policy": { "groups": { "group:admins": [ @@ -139,129 +137,297 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:exit-a", + "tag:exit-b", + "tag:group-a", + "tag:group-b" + ], + "dst": [ + "tag:exit-a", + "tag:exit-b", + "tag:group-a", + "tag:group-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-b" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -288,37 +454,770 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -345,13 +1244,185 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } } ] + }, + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] } ] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -365,6 +1436,20 @@ "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.116.18.24", "Ports": { @@ -378,37 +1463,756 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -422,6 +2226,20 @@ "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.116.18.24", "Ports": { @@ -435,20 +2253,498 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } } ] + }, + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] } ] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -479,33 +2775,278 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 8, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -535,10 +3076,80 @@ } ] } + ], + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -569,33 +3180,278 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -625,77 +3481,1317 @@ } ] } + ], + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } ] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.116.18.24", + "100.124.195.93", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V32.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V32.hujson index 7e2e7d42..3ed2c10d 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V32.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V32.hujson @@ -1,13 +1,16 @@ // GRANT-V32 // -// Grants: -// src=['tag:client'] dst=['autogroup:internet'] via=['tag:exit'] ip=['*'] -// src=['autogroup:member'] dst=['tag:server'] ip=['22'] +// Grants: 2 +// src=['tag:client'] dst=['autogroup:internet'] via=['tag:exit'] +// src=['autogroup:member'] dst=['tag:server'] // -// Expected: Rules on tagged-server +// Nodes with filter rules: 5 of 15 { "test_id": "GRANT-V32", + "timestamp": "2026-04-05T22:25:52Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v32.json", "full_policy": { "groups": { "group:admins": [ @@ -113,206 +116,294 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "autogroup:member" + ], + "dst": [ + "tag:server" + ], + "ip": [ + "22" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-a": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "exit-b": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "exit-node": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "group-a-client": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "group-b-client": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "multi-exit-router": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "router-a": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "router-b": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "subnet-router": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "tagged-client": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "tagged-prod": { - "packet_filter_rules": null, - "netmap": { - "Peers": [], - "PacketFilterRules": null - } - }, - "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -341,33 +432,115 @@ ] } ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [ - { - "Name": "user1.tail78f774.ts.net.", - "AllowedIPs": [ - "100.90.199.68/32", - "fd7a:115c:a1e0::2d01:c747/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "user-mon.tail78f774.ts.net.", - "AllowedIPs": [ - "100.103.90.82/32", - "fd7a:115c:a1e0::9e37:5a52/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "user-kris.tail78f774.ts.net.", - "AllowedIPs": [ - "100.110.121.96/32", - "fd7a:115c:a1e0::1737:7960/128" - ], - "PrimaryRoutes": [] - } - ], "PacketFilterRules": [ { "SrcIPs": [ @@ -395,55 +568,3444 @@ } ] } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } + }, + "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } + }, + "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } + }, + "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] + } + }, + "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] + } + }, + "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] + } + }, + "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } + }, + "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.103.90.82/32", + "100.110.121.96/32", + "100.90.199.68/32", + "fd7a:115c:a1e0::1737:7960/128", + "fd7a:115c:a1e0::2d01:c747/128", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.108.74.26/32", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "Net": "fd7a:115c:a1e0::b901:4a87/128", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "100.108.74.26", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::b901:4a87", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } ] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], "AllowedIPs": [ "100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128" ], - "PrimaryRoutes": [] + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] } - ], - "PacketFilterRules": null + ] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], "AllowedIPs": [ "100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128" ], - "PrimaryRoutes": [] + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] } - ], - "PacketFilterRules": null + ] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], "AllowedIPs": [ "100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128" ], - "PrimaryRoutes": [] + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] } - ], - "PacketFilterRules": null + ] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V33.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V33.hujson index a6ab0389..9e9ad3da 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V33.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V33.hujson @@ -1,13 +1,16 @@ // GRANT-V33 // -// Grants: -// src=['tag:client'] dst=['10.33.0.0/16'] via=['tag:router'] ip=['*'] -// src=['tag:client'] dst=['autogroup:internet'] via=['tag:exit'] ip=['*'] +// Grants: 2 +// src=['tag:client'] dst=['10.33.0.0/16'] via=['tag:router'] +// src=['tag:client'] dst=['autogroup:internet'] via=['tag:exit'] // -// Expected: Rules on multi-exit-router, subnet-router +// Nodes with filter rules: 3 of 15 { "test_id": "GRANT-V33", + "timestamp": "2026-04-05T22:26:28Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v33.json", "full_policy": { "groups": { "group:admins": [ @@ -116,164 +119,1367 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "10.33.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:client" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } + ] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -289,19 +1495,566 @@ } } ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] } ], - "netmap": { - "Peers": [ - { - "Name": "tagged-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.83.200.69/32", - "fd7a:115c:a1e0::c537:c845/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -317,25 +2070,322 @@ } } ] + }, + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] } ] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -353,17 +2403,155 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "tagged-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.83.200.69/32", - "fd7a:115c:a1e0::c537:c845/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -380,15 +2568,321 @@ } ] } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + } ] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], "AllowedIPs": [ "100.97.174.21/32", "fd7a:115c:a1e0::5137:ae15/128", @@ -396,64 +2890,582 @@ ], "PrimaryRoutes": [ "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" ] }, { "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], "AllowedIPs": [ "100.105.127.107/32", "fd7a:115c:a1e0::ad37:7f6b/128", - "10.33.0.0/16" + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" ], "PrimaryRoutes": [ "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" ] }, { "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], "AllowedIPs": [ "100.92.142.61/32", "fd7a:115c:a1e0::3e37:8e3d/128" ], - "PrimaryRoutes": [] + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] } - ], - "PacketFilterRules": null + ] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V34.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V34.hujson index 883aeef6..e4faf191 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V34.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V34.hujson @@ -1,11 +1,15 @@ // GRANT-V34 // -// Grant: src=['*'] dst=['autogroup:internet'] via=['tag:exit-a', 'tag:exit-b'] ip=['*'] +// Grants: 1 +// src=['*'] dst=['autogroup:internet'] via=['tag:exit-a', 'tag:exit-b'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 2 of 15 { "test_id": "GRANT-V34", + "timestamp": "2026-04-05T22:27:05Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v34.json", "full_policy": { "groups": { "group:admins": [ @@ -101,231 +105,6827 @@ } ] }, + "grants_section": [ + { + "src": [ + "*" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a", + "tag:exit-b" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] } } }, "captures": { "exit-a": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "exit-b": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0/23", + "100.115.96.0/19", + "100.115.128.0/17", + "100.116.0.0/14", + "100.120.0.0/13", + "100.64.0.0/11", + "100.96.0.0/12", + "100.112.0.0/15", + "100.114.0.0/16", + "100.115.0.0/18", + "100.115.64.0/20", + "100.115.80.0/21", + "100.115.88.0/22", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": { + "Node": { + "ID": 4041918547170221, + "StableID": "ngCb76MbZY11CNTRL", + "Name": "exit-node.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b34ab179eb28efcdda5fd37d8cd62a0dc99749febaff8a245128182b7a273361", + "DiscoKey": "discokey:5d6086955681d03ff2140e0417843a9a6de80fb9ed289d53a048f1a247967262", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "Endpoints": [ + "77.164.248.136:57231", + "10.65.0.27:57231", + "172.17.0.1:57231" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-node", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37000 + }, + { + "Proto": "peerapi6", + "Port": 37000 + } + ] + }, + "Created": "2026-02-23T00:13:20.566112173Z", + "Cap": 131, + "Tags": [ + "tag:exit" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-node", + "ComputedNameWithHost": "exit-node" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": { + "Node": { + "ID": 6294409699640722, + "StableID": "nMQuxDUk9r11CNTRL", + "Name": "multi-exit-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b854a0d64eba757cd3215c5bd78149cc0f927e35a2ad20342e88a15ead297f6a", + "DiscoKey": "discokey:70e36aba50935d2251d754e1a9ffcb18aeeafc557cb7d4f92429893d0b5a9326", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:39821", + "10.65.0.27:39821", + "172.17.0.1:39821" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "multi-exit-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 62548 + }, + { + "Proto": "peerapi6", + "Port": 62548 + } + ] + }, + "Created": "2026-03-28T10:38:19.117098852Z", + "Cap": 131, + "Tags": [ + "tag:exit", + "tag:router" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "multi-exit-router", + "ComputedNameWithHost": "multi-exit-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": { + "Node": { + "ID": 7489538288452506, + "StableID": "nTPEqJU2V121CNTRL", + "Name": "subnet-router.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:887ae2351c09c3b952f1f42bdac4095ec396ebf15824a746e4193c003e9c8e3c", + "DiscoKey": "discokey:36eb3645ed8f5ef5c8601e85560cccf5100c82d2625ee73ad530f6b51a71ba40", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "Endpoints": [ + "77.164.248.136:34224", + "10.65.0.27:34224", + "172.17.0.1:34224" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "subnet-router", + "Services": [ + { + "Proto": "peerapi4", + "Port": 63250 + }, + { + "Proto": "peerapi6", + "Port": 63250 + } + ] + }, + "Created": "2026-02-23T00:13:15.731478784Z", + "Cap": 131, + "Tags": [ + "tag:router" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Online": true, + "ComputedName": "subnet-router", + "ComputedNameWithHost": "subnet-router" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": { + "Node": { + "ID": 4031348162889210, + "StableID": "nf7BTTgoUY11CNTRL", + "Name": "tagged-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:3011e53353e49142ea56ae11f81e0dceae0d667093d04ee086dcb1e9c5d3c844", + "DiscoKey": "discokey:c78c29cd85855f7414f08ba053c6d80d7a661d49891a0c792d3a7af7815ab02e", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Endpoints": [ + "77.164.248.136:53421", + "10.65.0.27:53421", + "172.17.0.1:53421" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 41378 + }, + { + "Proto": "peerapi6", + "Port": 41378 + } + ] + }, + "Created": "2026-02-23T00:13:11.017324028Z", + "Cap": 131, + "Tags": [ + "tag:client" + ], + "Online": true, + "ComputedName": "tagged-client", + "ComputedNameWithHost": "tagged-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": { + "Node": { + "ID": 301794218943819, + "StableID": "neJag6dgM311CNTRL", + "Name": "tagged-prod.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:54c79503322a5d0a9701ce19d11963cfff9c05667ac06ef976af86275ba7080e", + "DiscoKey": "discokey:1c2ee88a4b588d5de4f3d52be9fe7f28391aad166c312fa6716dfe6ce7b2147e", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Endpoints": [ + "77.164.248.136:46058", + "10.65.0.27:46058", + "172.17.0.1:46058" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-prod", + "Services": [ + { + "Proto": "peerapi4", + "Port": 37678 + }, + { + "Proto": "peerapi6", + "Port": 37678 + } + ] + }, + "Created": "2026-02-20T14:03:12.89283153Z", + "Cap": 131, + "Tags": [ + "tag:prod" + ], + "Online": true, + "ComputedName": "tagged-prod", + "ComputedNameWithHost": "tagged-prod" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": { + "Node": { + "ID": 1440249486084758, + "StableID": "nXRbBtuHFC11CNTRL", + "Name": "tagged-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19", + "DiscoKey": "discokey:3d57b55a2c69edfb6e56aad07546134662aea2b00d948844e29b618bd457c55a", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Endpoints": [ + "77.164.248.136:53564", + "10.65.0.27:53564", + "172.17.0.1:53564" + ], + "HomeDERP": 18, + "Hostinfo": { + "OS": "linux", + "Hostname": "tagged-server", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46499 + }, + { + "Proto": "peerapi6", + "Port": 46499 + } + ] + }, + "Created": "2026-01-23T10:10:26.365653609Z", + "Cap": 131, + "Tags": [ + "tag:server" + ], + "Online": true, + "ComputedName": "tagged-server", + "ComputedNameWithHost": "tagged-server" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": { + "Node": { + "ID": 7728836216590060, + "StableID": "nf4dJTRQM321CNTRL", + "Name": "user-kris.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:40d0f8f49fd519e4a4a2b7d278dcc8863254d4fb8b0219f1d1304cdd172e795f", + "KeyExpiry": "2026-08-19T14:09:34Z", + "DiscoKey": "discokey:1493de770b259c4d0ef1f55afadde6992c1fbe37c13e4610c248a713ff8d1970", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Endpoints": [ + "77.164.248.136:34621", + "10.65.0.27:34621", + "172.17.0.1:34621" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-kris", + "Services": [ + { + "Proto": "peerapi4", + "Port": 40159 + }, + { + "Proto": "peerapi6", + "Port": 40159 + } + ] + }, + "Created": "2026-02-20T14:09:34.803901523Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-kris", + "ComputedNameWithHost": "user-kris" + }, + "UserProfile": { + "ID": 4538565228176803, + "LoginName": "kristoffer@dalby.cc", + "DisplayName": "kristoffer" + }, + "CapMap": null + } + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": { + "Node": { + "ID": 1840115676059256, + "StableID": "nFzZ7giPNF11CNTRL", + "Name": "user-mon.tail78f774.ts.net.", + "User": 3982058329734709, + "Key": "nodekey:1ca6cca66d2b3811ec290c2f7ac30125c3568e19e303a8e30f6b165c9ee75a51", + "KeyExpiry": "2026-08-19T14:09:00Z", + "DiscoKey": "discokey:c5593fd2a6dad5593fa0075e221fff1856eb0d892ad08c969bb08884ddb90d0a", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Endpoints": [ + "77.164.248.136:53015", + "10.65.0.27:53015", + "172.17.0.1:53015" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "user-mon", + "Services": [ + { + "Proto": "peerapi4", + "Port": 33201 + }, + { + "Proto": "peerapi6", + "Port": 33201 + } + ] + }, + "Created": "2026-02-20T14:09:00.203639664Z", + "Cap": 131, + "Online": true, + "ComputedName": "user-mon", + "ComputedNameWithHost": "user-mon" + }, + "UserProfile": { + "ID": 3982058329734709, + "LoginName": "monitorpasskeykradalby@passkey", + "DisplayName": "monitorpasskeykradalby" + }, + "CapMap": null + } + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": { + "Node": { + "ID": 539541576444929, + "StableID": "nSq9YrqMD511CNTRL", + "Name": "user1.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:96338a2cd2ea803c915ed8fdf882d66ca0c6a59d0fcf0bc4b3f928d22d1ac743", + "KeyExpiry": "2026-07-22T10:04:13Z", + "DiscoKey": "discokey:a6b642ed21f39f02aecf37de7d962922736f600aab855351d487ae29c1600b0b", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Endpoints": [ + "77.164.248.136:40054", + "10.65.0.27:40054", + "172.17.0.1:40054" + ], + "HomeDERP": 4, + "Hostinfo": { + "OS": "linux", + "Hostname": "user1", + "Services": [ + { + "Proto": "peerapi4", + "Port": 46708 + }, + { + "Proto": "peerapi6", + "Port": 46708 + } + ] + }, + "Created": "2026-01-23T10:04:13.531671894Z", + "Cap": 131, + "Online": true, + "ComputedName": "user1", + "ComputedNameWithHost": "user1" + }, + "UserProfile": { + "ID": 4156223528223174, + "LoginName": "kratail2tid@passkey", + "DisplayName": "kratail2tid" + }, + "CapMap": null + } + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] } }, "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "multi-exit-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } + ] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V35.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V35.hujson index fa32dd51..16fcc21c 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V35.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V35.hujson @@ -1,11 +1,15 @@ // GRANT-V35 // -// Grant: src=['tag:client'] dst=['10.99.0.0/16'] via=['tag:router'] ip=['*'] +// Grants: 1 +// src=['tag:client'] dst=['10.99.0.0/16'] via=['tag:router'] // -// Expected: No filter rules on any node +// Nodes with filter rules: 1 of 15 { "test_id": "GRANT-V35", + "timestamp": "2026-04-05T22:27:42Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v35.json", "full_policy": { "groups": { "group:admins": [ @@ -100,197 +104,1379 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:client" + ], + "dst": [ + "10.99.0.0/16" + ], + "via": [ + "tag:router" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "exit-node": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.83.200.69", + "fd7a:115c:a1e0::c537:c845" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, "Peers": [ { "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], "AllowedIPs": [ "100.97.174.21/32", "fd7a:115c:a1e0::5137:ae15/128", @@ -298,45 +1484,511 @@ ], "PrimaryRoutes": [ "10.0.0.0/8" + ], + "Tags": [ + "tag:router" ] } - ], - "PacketFilterRules": null + ] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/grant_results/GRANT-V36.hujson b/hscontrol/policy/v2/testdata/grant_results/GRANT-V36.hujson index 3164f7bb..8be225f7 100644 --- a/hscontrol/policy/v2/testdata/grant_results/GRANT-V36.hujson +++ b/hscontrol/policy/v2/testdata/grant_results/GRANT-V36.hujson @@ -1,21 +1,18 @@ // GRANT-V36 // -// WARNING: This file is consumed by TWO tests: -// 1. TestGrantsCompat (hscontrol/policy/v2/) — compares packet_filter_rules -// 2. TestViaGrantMapCompat (hscontrol/servertest/) — compares netmap structure -// Do NOT remove the 'netmap' field — it is required by TestViaGrantMapCompat. +// Grants: 5 +// src=['tag:group-a', 'tag:group-b', 'tag:exit-a', 'tag:exit-b', 'tag:router-a', 'tag:router-b'] dst=['tag:group-a', 'tag:group-b', 'tag:exit-a', 'tag:exit-b', 'tag:router-a', 'tag:router-b'] +// src=['tag:group-a'] dst=['10.44.0.0/16'] via=['tag:router-a'] +// src=['tag:group-b'] dst=['10.55.0.0/16'] via=['tag:router-b'] +// ... and 2 more // -// Grants: -// src=['tag:group-a', 'tag:group-b', 'tag:exit-a', 'tag:exit-b', 'tag:router-a', 'tag:router-b'] dst=['tag:group-a', 'tag:group-b', 'tag:exit-a', 'tag:exit-b', 'tag:router-a', 'tag:router-b'] ip=['*'] -// src=['tag:group-a'] dst=['10.44.0.0/16'] via=['tag:router-a'] ip=['*'] -// src=['tag:group-b'] dst=['10.55.0.0/16'] via=['tag:router-b'] ip=['*'] -// src=['tag:group-a'] dst=['autogroup:internet'] via=['tag:exit-b'] ip=['*'] -// src=['tag:group-b'] dst=['autogroup:internet'] via=['tag:exit-a'] ip=['*'] -// -// Expected: Rules on 6 nodes +// Nodes with filter rules: 8 of 15 { "test_id": "GRANT-V36", + "timestamp": "2026-04-05T22:28:17Z", + "propagation_wait_seconds": 30, "input": { + "policy_file": "grant_policies_via/grant_v36.json", "full_policy": { "groups": { "group:admins": [ @@ -173,129 +170,329 @@ } ] }, + "grants_section": [ + { + "src": [ + "tag:group-a", + "tag:group-b", + "tag:exit-a", + "tag:exit-b", + "tag:router-a", + "tag:router-b" + ], + "dst": [ + "tag:group-a", + "tag:group-b", + "tag:exit-a", + "tag:exit-b", + "tag:router-a", + "tag:router-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-a" + ], + "dst": [ + "10.44.0.0/16" + ], + "via": [ + "tag:router-a" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "10.55.0.0/16" + ], + "via": [ + "tag:router-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-a" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-b" + ], + "ip": [ + "*" + ] + }, + { + "src": [ + "tag:group-b" + ], + "dst": [ + "autogroup:internet" + ], + "via": [ + "tag:exit-a" + ], + "ip": [ + "*" + ] + } + ], + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_method": "POST", "api_response_code": 200 }, "topology": { "nodes": { "exit-a": { + "mts_name": "exit-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock", "hostname": "exit-a", + "user_id": 3118755726458377, "tags": [ "tag:exit-a" ], "ipv4": "100.124.195.93", - "ipv6": "fd7a:115c:a1e0::7837:c35d" + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-b": { + "mts_name": "exit-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock", "hostname": "exit-b", + "user_id": 2230775583277936, "tags": [ "tag:exit-b" ], "ipv4": "100.116.18.24", - "ipv6": "fd7a:115c:a1e0::ff37:1218" + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "exit-node": { + "mts_name": "exit-node", + "socket": "/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock", "hostname": "exit-node", + "user_id": 4041918547170221, "tags": [ "tag:exit" ], "ipv4": "100.85.66.106", - "ipv6": "fd7a:115c:a1e0::7c37:426a" + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] }, "group-a-client": { + "mts_name": "group-a-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock", "hostname": "group-a-client", + "user_id": 6999435610919250, "tags": [ "tag:group-a" ], "ipv4": "100.107.162.14", - "ipv6": "fd7a:115c:a1e0::a237:a20e" + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] }, "group-b-client": { + "mts_name": "group-b-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock", "hostname": "group-b-client", + "user_id": 1008089393782498, "tags": [ "tag:group-b" ], "ipv4": "100.77.135.18", - "ipv6": "fd7a:115c:a1e0::4b37:8712" + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] }, "multi-exit-router": { + "mts_name": "multi-exit-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock", "hostname": "multi-exit-router", + "user_id": 6294409699640722, "tags": [ "tag:exit", "tag:router" ], "ipv4": "100.105.127.107", - "ipv6": "fd7a:115c:a1e0::ad37:7f6b" + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] }, "router-a": { + "mts_name": "router-a", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock", "hostname": "router-a", + "user_id": 50590507314324, "tags": [ "tag:router-a" ], "ipv4": "100.109.43.124", - "ipv6": "fd7a:115c:a1e0::a537:2b7c" + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] }, "router-b": { + "mts_name": "router-b", + "socket": "/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock", "hostname": "router-b", + "user_id": 1399889648409786, "tags": [ "tag:router-b" ], "ipv4": "100.65.172.123", - "ipv6": "fd7a:115c:a1e0::5a37:ac7c" + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] }, "subnet-router": { + "mts_name": "subnet-router", + "socket": "/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock", "hostname": "subnet-router", + "user_id": 7489538288452506, "tags": [ "tag:router" ], "ipv4": "100.92.142.61", - "ipv6": "fd7a:115c:a1e0::3e37:8e3d" + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] }, "tagged-client": { + "mts_name": "tagged-client", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock", "hostname": "tagged-client", + "user_id": 4031348162889210, "tags": [ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { + "mts_name": "tagged-prod", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock", "hostname": "tagged-prod", + "user_id": 301794218943819, "tags": [ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { + "mts_name": "tagged-server", + "socket": "/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock", "hostname": "tagged-server", + "user_id": 1440249486084758, "tags": [ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { + "mts_name": "user-kris", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock", "hostname": "user-kris", + "user_id": 4538565228176803, "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { + "mts_name": "user-mon", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock", "hostname": "user-mon", + "user_id": 3982058329734709, "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { + "mts_name": "user1", + "socket": "/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock", "hostname": "user1", + "user_id": 4156223528223174, "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "exit-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -313,6 +510,34 @@ "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.124.195.93", "Ports": { @@ -326,53 +551,904 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } ], - "netmap": { - "Peers": [ - { - "Name": "router-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.109.43.124/32", - "fd7a:115c:a1e0::a537:2b7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "router-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.65.172.123/32", - "fd7a:115c:a1e0::5a37:ac7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.109.43.124/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a537:2b7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.65.172.123/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5a37:ac7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -390,6 +1466,34 @@ "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.124.195.93", "Ports": { @@ -403,13 +1507,215 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } } ] + }, + { + "SrcIPs": [ + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] } ] } }, "exit-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -427,6 +1733,48 @@ "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.116.18.24", "Ports": { @@ -440,53 +1788,890 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } ], - "netmap": { - "Peers": [ - { - "Name": "router-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.109.43.124/32", - "fd7a:115c:a1e0::a537:2b7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "router-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.65.172.123/32", - "fd7a:115c:a1e0::5a37:ac7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.109.43.124/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a537:2b7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.65.172.123/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5a37:ac7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "0.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "8.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "11.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "12.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "16.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "32.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "64.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "96.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.0.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "101.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "102.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "104.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "112.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "128.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "160.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "168.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.128.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.192.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.224.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.240.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.248.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.252.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "169.255.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "170.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.0.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.32.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.64.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "172.128.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "173.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "174.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "176.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.0.0.0/9", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.128.0.0/11", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.160.0.0/13", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.169.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.170.0.0/15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.172.0.0/14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.176.0.0/12", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "192.192.0.0/10", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "193.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "194.0.0.0/7", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "196.0.0.0/6", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "200.0.0.0/5", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "208.0.0.0/4", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "224.0.0.0/3", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "2000::/3", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -504,6 +2689,48 @@ "fd7a:115c:a1e0::ff37:1218" ], "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.116.18.24", "Ports": { @@ -517,20 +2744,624 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } } ] + }, + { + "SrcIPs": [ + "100.107.162.14", + "fd7a:115c:a1e0::a237:a20e" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] } ] } }, "exit-node": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.109.43.124", + "100.116.18.24", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.109.43.124/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a537:2b7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.65.172.123/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5a37:ac7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/exit-node/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.109.43.124", + "100.116.18.24", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] } }, "group-a-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -565,52 +3396,388 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "router-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.109.43.124/32", - "fd7a:115c:a1e0::a537:2b7c/128", - "10.44.0.0/16" - ], - "PrimaryRoutes": [ - "10.44.0.0/16" - ] - }, - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "router-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.65.172.123/32", - "fd7a:115c:a1e0::5a37:ac7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-a-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -644,10 +3811,113 @@ } ] } + ], + "SelfNode": { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Tags": [ + "tag:group-a" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + } ] } }, "group-b-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -682,52 +3952,388 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "router-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.109.43.124/32", - "fd7a:115c:a1e0::a537:2b7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "router-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.65.172.123/32", - "fd7a:115c:a1e0::5a37:ac7c/128", - "10.55.0.0/16" - ], - "PrimaryRoutes": [ - "10.55.0.0/16" - ] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/group-b-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -761,17 +4367,539 @@ } ] } + ], + "SelfNode": { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Tags": [ + "tag:group-b" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } ] } }, "multi-exit-router": { - "packet_filter_rules": null, + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.109.43.124", + "100.116.18.24", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.107.162.14/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a237:a20e/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.77.135.18/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::4b37:8712/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.124.195.93/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::7837:c35d/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.116.18.24/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::ff37:1218/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.109.43.124/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a537:2b7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "100.65.172.123/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5a37:ac7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/multi-exit-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.107.162.14", + "100.109.43.124", + "100.116.18.24", + "100.124.195.93", + "100.65.172.123", + "100.77.135.18", + "fd7a:115c:a1e0::4b37:8712", + "fd7a:115c:a1e0::5a37:ac7c", + "fd7a:115c:a1e0::7837:c35d", + "fd7a:115c:a1e0::a237:a20e", + "fd7a:115c:a1e0::a537:2b7c", + "fd7a:115c:a1e0::ff37:1218" + ], + "DstPorts": [ + { + "IP": "100.107.162.14", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a237:a20e", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.77.135.18", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::4b37:8712", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.124.195.93", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7837:c35d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.116.18.24", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ff37:1218", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.109.43.124", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::a537:2b7c", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.65.172.123", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5a37:ac7c", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "10.33.0.0/16" + ] + } + }, + "Peers": [] } }, "router-a": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -821,49 +4949,405 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "router-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.65.172.123/32", - "fd7a:115c:a1e0::5a37:ac7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.109.43.124/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::a537:2b7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.44.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.65.172.123", + "response": { + "Node": { + "ID": 1399889648409786, + "StableID": "nPHvXBj1wB11CNTRL", + "Name": "router-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:4e6d3473c516cea37bcefdf4368932c623fd91c24aee1aacc27ca8165a41ac7a", + "DiscoKey": "discokey:32ff226e7521b1d01bffd88d671bfe18789ee7ab3648410d441616d70131d052", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "Endpoints": [ + "77.164.248.136:57366", + "10.65.0.27:57366", + "172.17.0.1:57366" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 58804 + }, + { + "Proto": "peerapi6", + "Port": 58804 + } + ] + }, + "Created": "2026-03-28T10:38:15.42735258Z", + "Cap": 131, + "Tags": [ + "tag:router-b" + ], + "Online": true, + "ComputedName": "router-b", + "ComputedNameWithHost": "router-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-a/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -912,10 +5396,111 @@ } ] } + ], + "SelfNode": { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.44.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } ] } }, "router-b": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": [ { "SrcIPs": [ @@ -965,49 +5550,405 @@ ] } ], - "netmap": { - "Peers": [ - { - "Name": "router-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.109.43.124/32", - "fd7a:115c:a1e0::a537:2b7c/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-b-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.77.135.18/32", - "fd7a:115c:a1e0::4b37:8712/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-b.tail78f774.ts.net.", - "AllowedIPs": [ - "100.116.18.24/32", - "fd7a:115c:a1e0::ff37:1218/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "exit-a.tail78f774.ts.net.", - "AllowedIPs": [ - "100.124.195.93/32", - "fd7a:115c:a1e0::7837:c35d/128" - ], - "PrimaryRoutes": [] - }, - { - "Name": "group-a-client.tail78f774.ts.net.", - "AllowedIPs": [ - "100.107.162.14/32", - "fd7a:115c:a1e0::a237:a20e/128" - ], - "PrimaryRoutes": [] + "packet_filter_matches": [ + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.107.162.14/32", + "100.109.43.124/32", + "100.116.18.24/32", + "100.124.195.93/32", + "100.65.172.123/32", + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128", + "fd7a:115c:a1e0::5a37:ac7c/128", + "fd7a:115c:a1e0::7837:c35d/128", + "fd7a:115c:a1e0::a237:a20e/128", + "fd7a:115c:a1e0::a537:2b7c/128", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "100.65.172.123/32", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "Net": "fd7a:115c:a1e0::5a37:ac7c/128", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + }, + { + "IPProto": [ + 6, + 17, + 1, + 58 + ], + "Srcs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "SrcCaps": null, + "Dsts": [ + { + "Net": "10.55.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "Caps": [] + } + ], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.124.195.93", + "response": { + "Node": { + "ID": 3118755726458377, + "StableID": "nvFTscRVMR11CNTRL", + "Name": "exit-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:21ab6fa3288e3bf8cecced295316c6327f427649765eb1746cc6ee9978bcc35c", + "DiscoKey": "discokey:08d2f0386d69bb9b7bd1e2174eb26aa4862708b0b396caaf1d8ba04efffad22f", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "Endpoints": [ + "77.164.248.136:38354", + "10.65.0.27:38354", + "172.17.0.1:38354" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 57826 + }, + { + "Proto": "peerapi6", + "Port": 57826 + } + ] + }, + "Created": "2026-03-28T10:37:56.932966573Z", + "Cap": 131, + "Tags": [ + "tag:exit-a" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-a", + "ComputedNameWithHost": "exit-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null } - ], + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.116.18.24", + "response": { + "Node": { + "ID": 2230775583277936, + "StableID": "ndK1N8hKRJ11CNTRL", + "Name": "exit-b.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:265e1377372be0d036773ac41339bf7b53ed18e9f67f196d7d517abeff741217", + "DiscoKey": "discokey:17cb63d0bc3982ca258df0d696362fce666d70165a079b3371ae2be6c1a2f368", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "Endpoints": [ + "77.164.248.136:53782", + "10.65.0.27:53782", + "172.17.0.1:53782" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "exit-b", + "Services": [ + { + "Proto": "peerapi4", + "Port": 61723 + }, + { + "Proto": "peerapi6", + "Port": 61723 + } + ] + }, + "Created": "2026-03-28T10:38:00.655990366Z", + "Cap": 131, + "Tags": [ + "tag:exit-b" + ], + "Online": true, + "CapMap": { + "suggest-exit-node": [] + }, + "ComputedName": "exit-b", + "ComputedNameWithHost": "exit-b" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.107.162.14", + "response": { + "Node": { + "ID": 6999435610919250, + "StableID": "nyckVfJ4fw11CNTRL", + "Name": "group-a-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:802726716bd4942fceb5e444218c930040fadb082698b57ea3eb59a6a26ba20d", + "DiscoKey": "discokey:a5641c9ccf1b209e1950a1ae46b42c8f2cbb2567daf55e9dba3a73e29e298927", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "Endpoints": [ + "77.164.248.136:33499", + "10.65.0.27:33499", + "172.17.0.1:33499" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-a-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 36543 + }, + { + "Proto": "peerapi6", + "Port": 36543 + } + ] + }, + "Created": "2026-03-28T10:38:04.339428828Z", + "Cap": 131, + "Tags": [ + "tag:group-a" + ], + "Online": true, + "ComputedName": "group-a-client", + "ComputedNameWithHost": "group-a-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.77.135.18", + "response": { + "Node": { + "ID": 1008089393782498, + "StableID": "ndUwgLoZs811CNTRL", + "Name": "group-b-client.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ef35a655163204a08b33e09fdc24709f1e3aaa7f40de4efd5549cf014b4d8711", + "DiscoKey": "discokey:adbfa009b32d0dc185fce39be1e70374689683cd37a58f40f7bc7633f01f1e6f", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "Endpoints": [ + "77.164.248.136:54046", + "10.65.0.27:54046", + "172.17.0.1:54046" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "group-b-client", + "Services": [ + { + "Proto": "peerapi4", + "Port": 47173 + }, + { + "Proto": "peerapi6", + "Port": 47173 + } + ] + }, + "Created": "2026-03-28T10:38:08.031309668Z", + "Cap": 131, + "Tags": [ + "tag:group-b" + ], + "Online": true, + "ComputedName": "group-b-client", + "ComputedNameWithHost": "group-b-client" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.109.43.124", + "response": { + "Node": { + "ID": 50590507314324, + "StableID": "n3kktkvuP111CNTRL", + "Name": "router-a.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:b4566fef38b3b2b15684fc8890f5fbaea4525b467825f57a02801969a5ed2b7b", + "DiscoKey": "discokey:2e7459984f32d4e1e3ee31600fe9503c2ea18c2a1ce801171e8c490416d43078", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "Endpoints": [ + "77.164.248.136:58880", + "10.65.0.27:58880", + "172.17.0.1:58880" + ], + "HomeDERP": 14, + "Hostinfo": { + "OS": "linux", + "Hostname": "router-a", + "Services": [ + { + "Proto": "peerapi4", + "Port": 49439 + }, + { + "Proto": "peerapi6", + "Port": 49439 + } + ] + }, + "Created": "2026-03-28T10:38:11.734910312Z", + "Cap": 131, + "Tags": [ + "tag:router-a" + ], + "Online": true, + "ComputedName": "router-a", + "ComputedNameWithHost": "router-a" + }, + "UserProfile": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, + "CapMap": null + } + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/router-b/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, + "netmap": { "PacketFilterRules": [ { "SrcIPs": [ @@ -1056,56 +5997,810 @@ } ] } + ], + "SelfNode": { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.55.0.0/16" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + } ] } }, "subnet-router": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/subnet-router/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] } }, "tagged-client": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-client/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-prod": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-prod/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "tagged-server": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/tagged-server/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-kris": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.103.90.82", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-kris/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user-mon": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.90.199.68": { + "peer_name": "user1", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user-mon/tailscaled.sock whois --json 100.90.199.68", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } }, "user1": { + "commands": { + "packet_filter_rules": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-rules", + "packet_filter_matches": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock debug localapi POST debug-packet-filter-matches" + }, "packet_filter_rules": null, + "packet_filter_matches": [], + "whois": { + "100.124.195.93": { + "peer_name": "exit-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.124.195.93", + "response": null + }, + "100.116.18.24": { + "peer_name": "exit-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.116.18.24", + "response": null + }, + "100.85.66.106": { + "peer_name": "exit-node", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.85.66.106", + "response": null + }, + "100.107.162.14": { + "peer_name": "group-a-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.107.162.14", + "response": null + }, + "100.77.135.18": { + "peer_name": "group-b-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.77.135.18", + "response": null + }, + "100.105.127.107": { + "peer_name": "multi-exit-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.105.127.107", + "response": null + }, + "100.109.43.124": { + "peer_name": "router-a", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.109.43.124", + "response": null + }, + "100.65.172.123": { + "peer_name": "router-b", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.65.172.123", + "response": null + }, + "100.92.142.61": { + "peer_name": "subnet-router", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.92.142.61", + "response": null + }, + "100.83.200.69": { + "peer_name": "tagged-client", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.83.200.69", + "response": null + }, + "100.103.8.15": { + "peer_name": "tagged-prod", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.8.15", + "response": null + }, + "100.108.74.26": { + "peer_name": "tagged-server", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.108.74.26", + "response": null + }, + "100.110.121.96": { + "peer_name": "user-kris", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.110.121.96", + "response": null + }, + "100.103.90.82": { + "peer_name": "user-mon", + "command": "/home/kradalby/go/bin/tailscale --socket=/home/kradalby/.config/multi-tailscale-dev/user1/tailscaled.sock whois --json 100.103.90.82", + "response": null + } + }, "netmap": { - "Peers": [], - "PacketFilterRules": null + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a1_wildcard_acl_includes_routes_in_srcips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a1_wildcard_acl_includes_routes_in_srcips.hujson index 5c454731..085a4a2c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a1_wildcard_acl_includes_routes_in_srcips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a1_wildcard_acl_includes_routes_in_srcips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-a1_wildcard_acl_includes_routes_in_srcips", + "timestamp": "2026-04-05T19:11:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_a1_wildcard_acl_includes_routes_in_srcips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a2_tag_based_acl_excludes_routes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a2_tag_based_acl_excludes_routes.hujson index 7cec2888..7dc23d1d 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a2_tag_based_acl_excludes_routes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a2_tag_based_acl_excludes_routes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:router'] dst=['tag:router:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 3 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-a2_tag_based_acl_excludes_routes", + "timestamp": "2026-04-05T19:11:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_a2_tag_based_acl_excludes_routes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,44 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,12 +250,14 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -242,29 +276,144 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.119.241.111", "Ports": { @@ -278,21 +427,416 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, - "subnet-router": { + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -311,25 +855,251 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3_explicit_subnet_filter_to_router.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3_explicit_subnet_filter_to_router.hujson index c19ea6ef..c1dbdefa 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3_explicit_subnet_filter_to_router.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3_explicit_subnet_filter_to_router.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-a3_explicit_subnet_filter_to_router", + "timestamp": "2026-04-05T19:12:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_a3_explicit_subnet_filter_to_router.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3b_autogroup_member_to_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3b_autogroup_member_to_subnet.hujson index 1f404469..d01aa276 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3b_autogroup_member_to_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a3b_autogroup_member_to_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-a3b_autogroup_member_to_subnet", + "timestamp": "2026-04-05T19:12:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_a3b_autogroup_member_to_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +271,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +573,390 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a4_multiple_routes_same_router.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a4_multiple_routes_same_router.hujson index 2c63f0ec..a5b932d2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a4_multiple_routes_same_router.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a4_multiple_routes_same_router.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['172.16.0.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 1 of 12 nodes +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-a4_multiple_routes_same_router", + "timestamp": "2026-04-05T19:12:54Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_a4_multiple_routes_same_router.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,51 +204,180 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -248,28 +390,842 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a5_host_alias_to_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a5_host_alias_to_subnet.hujson index 330365e0..1b16fa59 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-a5_host_alias_to_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-a5_host_alias_to_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['internal:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-a5_host_alias_to_subnet", + "timestamp": "2026-04-05T19:13:15Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_a5_host_alias_to_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,907 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1251,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1270,1014 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b10_exit_routes_not_in_primaryroutes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b10_exit_routes_not_in_primaryroutes.hujson index 100634ac..9ae7cfba 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b10_exit_routes_not_in_primaryroutes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b10_exit_routes_not_in_primaryroutes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b10_exit_routes_not_in_primaryroutes", + "timestamp": "2026-04-05T19:13:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b10_exit_routes_not_in_primaryroutes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b11_autogroup_internet_only.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b11_autogroup_internet_only.hujson new file mode 100644 index 00000000..20f375bc --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b11_autogroup_internet_only.hujson @@ -0,0 +1,2380 @@ +// ROUTES-b11_autogroup_internet_only +// +// ACL: accept: src=['*'] dst=['autogroup:internet:*'] +// +// Nodes with filter rules: 2 of 12 +{ + "test_id": "ROUTES-b11_autogroup_internet_only", + "timestamp": "2026-04-05T19:13:57Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_b11_autogroup_internet_only.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "autogroup:internet:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b12_connectivity_plus_autogroup_internet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b12_connectivity_plus_autogroup_internet.hujson new file mode 100644 index 00000000..3f8a6a7f --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b12_connectivity_plus_autogroup_internet.hujson @@ -0,0 +1,2559 @@ +// ROUTES-b12_connectivity_plus_autogroup_internet +// +// ACLs: 2 rules +// accept: src=['*'] dst=['tag:exit:*'] +// accept: src=['*'] dst=['autogroup:internet:*'] +// +// Nodes with filter rules: 2 of 12 +{ + "test_id": "ROUTES-b12_connectivity_plus_autogroup_internet", + "timestamp": "2026-04-05T19:14:19Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_b12_connectivity_plus_autogroup_internet.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "tag:exit:*" + ] + }, + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "autogroup:internet:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b13_connectivity_plus_explicit_exit.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b13_connectivity_plus_explicit_exit.hujson new file mode 100644 index 00000000..327f2905 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b13_connectivity_plus_explicit_exit.hujson @@ -0,0 +1,4967 @@ +// ROUTES-b13_connectivity_plus_explicit_exit +// +// ACLs: 2 rules +// accept: src=['*'] dst=['tag:exit:*'] +// accept: src=['*'] dst=['*:*'] +// +// Nodes with filter rules: 12 of 12 +{ + "test_id": "ROUTES-b13_connectivity_plus_explicit_exit", + "timestamp": "2026-04-05T19:14:40Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_b13_connectivity_plus_explicit_exit.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "tag:exit:*" + ] + }, + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "*:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b14_all_three_internet_patterns.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b14_all_three_internet_patterns.hujson new file mode 100644 index 00000000..3d443bd9 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b14_all_three_internet_patterns.hujson @@ -0,0 +1,5173 @@ +// ROUTES-b14_all_three_internet_patterns +// +// ACLs: 3 rules +// accept: src=['*'] dst=['tag:exit:*'] +// accept: src=['*'] dst=['autogroup:internet:*'] +// accept: src=['*'] dst=['*:*'] +// +// Nodes with filter rules: 12 of 12 +{ + "test_id": "ROUTES-b14_all_three_internet_patterns", + "timestamp": "2026-04-05T19:15:01Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_b14_all_three_internet_patterns.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "tag:exit:*" + ] + }, + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "autogroup:internet:*" + ] + }, + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "*:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b15_restricted_src_autogroup_internet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b15_restricted_src_autogroup_internet.hujson new file mode 100644 index 00000000..f74a3204 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b15_restricted_src_autogroup_internet.hujson @@ -0,0 +1,1124 @@ +// ROUTES-b15_restricted_src_autogroup_internet +// +// ACLs: 2 rules +// accept: src=['group:admins'] dst=['tag:exit:*'] +// accept: src=['group:admins'] dst=['autogroup:internet:*'] +// +// Nodes with filter rules: 2 of 12 +{ + "test_id": "ROUTES-b15_restricted_src_autogroup_internet", + "timestamp": "2026-04-05T19:15:22Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_b15_restricted_src_autogroup_internet.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "group:admins" + ], + "dst": [ + "tag:exit:*" + ] + }, + { + "action": "accept", + "src": [ + "group:admins" + ], + "dst": [ + "autogroup:internet:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.90.199.68", + "fd7a:115c:a1e0::2d01:c747" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b16_autogroup_internet_no_exit_approval.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b16_autogroup_internet_no_exit_approval.hujson new file mode 100644 index 00000000..33a138d4 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b16_autogroup_internet_no_exit_approval.hujson @@ -0,0 +1,2553 @@ +// ROUTES-b16_autogroup_internet_no_exit_approval +// +// ACLs: 2 rules +// accept: src=['*'] dst=['tag:exit:*'] +// accept: src=['*'] dst=['autogroup:internet:*'] +// +// Nodes with filter rules: 2 of 12 +{ + "test_id": "ROUTES-b16_autogroup_internet_no_exit_approval", + "timestamp": "2026-04-05T19:15:43Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_b16_autogroup_internet_no_exit_approval.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "tag:exit:*" + ] + }, + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "autogroup:internet:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b1_exit_routes_not_in_srcips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b1_exit_routes_not_in_srcips.hujson index 1882fa8a..14abd95f 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b1_exit_routes_not_in_srcips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b1_exit_routes_not_in_srcips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b1_exit_routes_not_in_srcips", + "timestamp": "2026-04-05T19:16:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b1_exit_routes_not_in_srcips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b2_tag_exit_excludes_exit_routes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b2_tag_exit_excludes_exit_routes.hujson index 3756ff43..09d95c24 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b2_tag_exit_excludes_exit_routes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b2_tag_exit_excludes_exit_routes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:exit'] dst=['tag:exit:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-b2_tag_exit_excludes_exit_routes", + "timestamp": "2026-04-05T19:16:26Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b2_tag_exit_excludes_exit_routes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,40 +204,85 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -235,32 +293,12 @@ } }, { - "IP": "fd7a:115c:a1e0::7c37:426a", + "IP": "100.105.127.107", "Ports": { "First": 0, "Last": 65535 } - } - ] - } - ] - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.119.241.111", - "100.85.66.106", - "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" - ], - "DstPorts": [ + }, { "IP": "100.119.241.111", "Ports": { @@ -274,31 +312,533 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b3_exit_node_advertises_routes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b3_exit_node_advertises_routes.hujson index 0c09e17d..82ff43c4 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b3_exit_node_advertises_routes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b3_exit_node_advertises_routes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b3_exit_node_advertises_routes", + "timestamp": "2026-04-05T19:16:47Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b3_exit_node_advertises_routes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b4_multi_router_has_both_route_types.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b4_multi_router_has_both_route_types.hujson index cdbbe9dc..9c1a49c2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b4_multi_router_has_both_route_types.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b4_multi_router_has_both_route_types.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b4_multi_router_has_both_route_types", + "timestamp": "2026-04-05T19:17:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b4_multi_router_has_both_route_types.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b5_exit_with_wildcard_dst.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b5_exit_with_wildcard_dst.hujson index 6f77e8fa..32888b6c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b5_exit_with_wildcard_dst.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b5_exit_with_wildcard_dst.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b5_exit_with_wildcard_dst", + "timestamp": "2026-04-05T19:17:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b5_exit_with_wildcard_dst.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b6_exit_node_option_field.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b6_exit_node_option_field.hujson index fa1a33bc..fb26ac56 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b6_exit_node_option_field.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b6_exit_node_option_field.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:exit'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b6_exit_node_option_field", + "timestamp": "2026-04-05T19:17:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b6_exit_node_option_field.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,124 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,10 +330,12 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -233,16 +347,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -254,16 +462,360 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -275,16 +827,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -296,16 +942,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -317,16 +1057,359 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -338,16 +1421,115 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -359,16 +1541,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -380,16 +1653,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -401,16 +1765,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -422,16 +1877,105 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -443,16 +1987,105 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -464,7 +2097,94 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b7_multiple_exit_nodes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b7_multiple_exit_nodes.hujson index cbc0f194..719c8ea8 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b7_multiple_exit_nodes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b7_multiple_exit_nodes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:exit'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b7_multiple_exit_nodes", + "timestamp": "2026-04-05T19:18:12Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b7_multiple_exit_nodes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,124 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,10 +330,12 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -233,16 +347,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -254,16 +462,360 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -275,16 +827,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -296,16 +942,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -317,16 +1057,359 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -338,16 +1421,115 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -359,16 +1541,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -380,16 +1653,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -401,16 +1765,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -422,16 +1877,105 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -443,16 +1987,105 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -464,7 +2097,94 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b8_autogroup_internet_no_filters.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b8_autogroup_internet_no_filters.hujson index 8ec46ef6..5c0e3980 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b8_autogroup_internet_no_filters.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b8_autogroup_internet_no_filters.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['autogroup:internet:*'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-b8_autogroup_internet_no_filters", + "timestamp": "2026-04-05T19:18:33Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b8_autogroup_internet_no_filters.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,986 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "0.0.0.0-9.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "11.0.0.0-100.63.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.128.0.0-169.253.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "169.255.0.0-172.15.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "172.32.0.0-192.167.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "192.169.0.0-255.255.255.255", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "2000::-3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b9_exit_routes_in_allowedips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b9_exit_routes_in_allowedips.hujson index 89174661..ec74cff2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-b9_exit_routes_in_allowedips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-b9_exit_routes_in_allowedips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-b9_exit_routes_in_allowedips", + "timestamp": "2026-04-05T19:18:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_b9_exit_routes_in_allowedips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d10_auto_approval_retroactive.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d10_auto_approval_retroactive.hujson index fb0a40cd..77f412b1 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d10_auto_approval_retroactive.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d10_auto_approval_retroactive.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:443'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d10_auto_approval_retroactive", + "timestamp": "2026-04-05T19:19:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d10_auto_approval_retroactive.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d11_overlapping_auto_approvers.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d11_overlapping_auto_approvers.hujson index 72b643e3..03d16250 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d11_overlapping_auto_approvers.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d11_overlapping_auto_approvers.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.0.0.0/8:80'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d11_overlapping_auto_approvers", + "timestamp": "2026-04-05T19:19:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d11_overlapping_auto_approvers.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,907 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1251,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1270,1014 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d1_basic_route_auto_approval.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d1_basic_route_auto_approval.hujson index 051f5b23..52dd7e9c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d1_basic_route_auto_approval.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d1_basic_route_auto_approval.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d1_basic_route_auto_approval", + "timestamp": "2026-04-05T19:19:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d1_basic_route_auto_approval.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d2_nested_prefix_approval.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d2_nested_prefix_approval.hujson index bb640d9b..961c44db 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d2_nested_prefix_approval.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d2_nested_prefix_approval.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d2_nested_prefix_approval", + "timestamp": "2026-04-05T19:20:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d2_nested_prefix_approval.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d3_exact_prefix_approval.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d3_exact_prefix_approval.hujson index 37ea884c..1e5921c8 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d3_exact_prefix_approval.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d3_exact_prefix_approval.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d3_exact_prefix_approval", + "timestamp": "2026-04-05T19:20:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d3_exact_prefix_approval.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d4_prefix_not_covered.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d4_prefix_not_covered.hujson index ef6ccecf..a52076aa 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d4_prefix_not_covered.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d4_prefix_not_covered.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d4_prefix_not_covered", + "timestamp": "2026-04-05T19:21:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d4_prefix_not_covered.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d5_wrong_tag_not_approved.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d5_wrong_tag_not_approved.hujson index 41350a4a..d49ed234 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d5_wrong_tag_not_approved.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d5_wrong_tag_not_approved.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:router'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d5_wrong_tag_not_approved", + "timestamp": "2026-04-05T19:21:24Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d5_wrong_tag_not_approved.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,45 +204,194 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -241,18 +403,129 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -264,31 +537,427 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d6_exit_node_auto_approval.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d6_exit_node_auto_approval.hujson index 968bf37f..a8b3ebeb 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d6_exit_node_auto_approval.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d6_exit_node_auto_approval.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-d6_exit_node_auto_approval", + "timestamp": "2026-04-05T19:21:45Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d6_exit_node_auto_approval.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d7_exit_auto_approval_wrong_tag.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d7_exit_auto_approval_wrong_tag.hujson index 6443aa7c..da885c13 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d7_exit_auto_approval_wrong_tag.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d7_exit_auto_approval_wrong_tag.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:exit'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-d7_exit_auto_approval_wrong_tag", + "timestamp": "2026-04-05T19:22:06Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d7_exit_auto_approval_wrong_tag.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,124 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,10 +330,12 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -233,16 +347,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -254,16 +462,360 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -275,16 +827,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -296,16 +942,110 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -317,16 +1057,359 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -338,16 +1421,115 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -359,16 +1541,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -380,16 +1653,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -401,16 +1765,107 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -422,16 +1877,105 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -443,16 +1987,105 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -464,7 +2097,94 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d8_auto_approval_acl_interaction.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d8_auto_approval_acl_interaction.hujson index 48365146..4d9a776f 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d8_auto_approval_acl_interaction.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d8_auto_approval_acl_interaction.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d8_auto_approval_acl_interaction", + "timestamp": "2026-04-05T19:22:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d8_auto_approval_acl_interaction.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +271,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +573,390 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d9_auto_approval_triggers_on_advertise.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d9_auto_approval_triggers_on_advertise.hujson index 2ba7b010..3fc5725b 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-d9_auto_approval_triggers_on_advertise.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-d9_auto_approval_triggers_on_advertise.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-d9_auto_approval_triggers_on_advertise", + "timestamp": "2026-04-05T19:22:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_d9_auto_approval_triggers_on_advertise.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e1_ha_two_routers_same_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e1_ha_two_routers_same_subnet.hujson index a8c4bba1..5a2cd1ca 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e1_ha_two_routers_same_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e1_ha_two_routers_same_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-e1_ha_two_routers_same_subnet", + "timestamp": "2026-04-05T19:23:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_e1_ha_two_routers_same_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e2_ha_primary_in_allowedips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e2_ha_primary_in_allowedips.hujson index 190b218c..ff9997c8 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e2_ha_primary_in_allowedips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e2_ha_primary_in_allowedips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-e2_ha_primary_in_allowedips", + "timestamp": "2026-04-05T19:23:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_e2_ha_primary_in_allowedips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e3_ha_secondary_no_route_in_allowedips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e3_ha_secondary_no_route_in_allowedips.hujson index ad947e11..6587e924 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e3_ha_secondary_no_route_in_allowedips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e3_ha_secondary_no_route_in_allowedips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-e3_ha_secondary_no_route_in_allowedips", + "timestamp": "2026-04-05T19:23:52Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_e3_ha_secondary_no_route_in_allowedips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e4_ha_both_get_filters_host_alias.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e4_ha_both_get_filters_host_alias.hujson index 302e532d..2d3f292a 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e4_ha_both_get_filters_host_alias.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e4_ha_both_get_filters_host_alias.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['subnet24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-e4_ha_both_get_filters_host_alias", + "timestamp": "2026-04-05T19:24:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_e4_ha_both_get_filters_host_alias.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e5_first_advertiser_is_primary.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e5_first_advertiser_is_primary.hujson index 8853942c..bb5e8dad 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-e5_first_advertiser_is_primary.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-e5_first_advertiser_is_primary.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-e5_first_advertiser_is_primary", + "timestamp": "2026-04-05T19:24:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_e5_first_advertiser_is_primary.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f10_subnet_to_subnet_issue3157.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f10_subnet_to_subnet_issue3157.hujson index 721f965d..f4cbded3 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f10_subnet_to_subnet_issue3157.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f10_subnet_to_subnet_issue3157.hujson @@ -1,16 +1,14 @@ // ROUTES-f10_subnet_to_subnet_issue3157 // -// ACLs: -// accept: src=['subnet_a'] dst=['subnet_b:*'] -// (hosts: subnet_a=192.168.1.0/24, subnet_b=172.16.0.0/24) +// ACL: accept: src=['subnet_a'] dst=['subnet_b:*'] // -// Tests the EXACT scenario from issue #3157: two dedicated subnet routers, -// each with one disjoint subnet, unidirectional ACL using host aliases. -// -// Expected: 1 rule on multi-router (routes 172.16.0.0/24 = dst subnet_b) +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-f10_subnet_to_subnet_issue3157", + "timestamp": "2026-04-05T19:24:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f10_subnet_to_subnet_issue3157.json", "full_policy": { "groups": { "group:admins": [ @@ -83,7 +81,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -154,10 +154,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -168,10 +172,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -180,7 +186,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -188,7 +196,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -196,40 +206,216 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -247,28 +433,252 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f11_subnet_to_subnet_bidirectional.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f11_subnet_to_subnet_bidirectional.hujson index 8c31dd57..332864c4 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f11_subnet_to_subnet_bidirectional.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f11_subnet_to_subnet_bidirectional.hujson @@ -1,16 +1,16 @@ // ROUTES-f11_subnet_to_subnet_bidirectional // -// ACLs: +// ACLs: 2 rules // accept: src=['192.168.1.0/24'] dst=['10.33.0.0/16:*'] // accept: src=['10.33.0.0/16'] dst=['192.168.1.0/24:*'] // -// Bidirectional subnet-to-subnet with big-router overlapping on 10.0.0.0/8. -// ha-router1 and ha-router2 both route 192.168.1.0/24. -// -// Expected: 4 nodes with rules (big-router, ha-router1, ha-router2, subnet-router) +// Nodes with filter rules: 6 of 12 { "test_id": "ROUTES-f11_subnet_to_subnet_bidirectional", + "timestamp": "2026-04-05T19:25:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f11_subnet_to_subnet_bidirectional.json", "full_policy": { "groups": { "group:admins": [ @@ -90,7 +90,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -161,10 +163,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -175,10 +181,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -187,7 +195,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -195,7 +205,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -203,25 +215,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -242,10 +277,167 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { "packet_filter_rules": [ @@ -263,7 +455,99 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -281,10 +565,189 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -302,25 +765,220 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f12_subnet_to_subnet_host_aliases.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f12_subnet_to_subnet_host_aliases.hujson index aa6d0492..3ba86cf5 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f12_subnet_to_subnet_host_aliases.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f12_subnet_to_subnet_host_aliases.hujson @@ -1,17 +1,14 @@ // ROUTES-f12_subnet_to_subnet_host_aliases // -// ACLs: -// accept: src=['subnet24'] dst=['internal:*'] -// (hosts: subnet24=192.168.1.0/24, internal=10.0.0.0/8) +// ACL: accept: src=['subnet24'] dst=['internal:*'] // -// Host aliases where dst is a superset route. big-router routes 10.0.0.0/8 -// which exactly matches dst 'internal'. subnet-router routes 10.33.0.0/16 -// which is a subset of dst — Tailscale SaaS gives it the SAME rule. -// -// Expected: 2 nodes with rules (big-router, subnet-router) +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f12_subnet_to_subnet_host_aliases", + "timestamp": "2026-04-05T19:25:37Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f12_subnet_to_subnet_host_aliases.json", "full_policy": { "groups": { "group:admins": [ @@ -82,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -153,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -167,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -179,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -187,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -195,25 +204,76 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -234,19 +294,433 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -264,25 +738,220 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f13_subnet_to_subnet_disjoint.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f13_subnet_to_subnet_disjoint.hujson index d58a63ca..3f423cec 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f13_subnet_to_subnet_disjoint.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f13_subnet_to_subnet_disjoint.hujson @@ -1,16 +1,16 @@ // ROUTES-f13_subnet_to_subnet_disjoint // -// ACLs: +// ACLs: 2 rules // accept: src=['192.168.1.0/24'] dst=['172.16.0.0/24:*'] // accept: src=['172.16.0.0/24'] dst=['192.168.1.0/24:*'] // -// Disjoint subnets, bidirectional. ha-router1 and ha-router2 route 192.168.1.0/24, -// multi-router routes 172.16.0.0/24. big-router (10.0.0.0/8) has NO overlap. -// -// Expected: 3 nodes with rules (ha-router1, ha-router2, multi-router) +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f13_subnet_to_subnet_disjoint", + "timestamp": "2026-04-05T19:25:58Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f13_subnet_to_subnet_disjoint.json", "full_policy": { "groups": { "group:admins": [ @@ -90,7 +90,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -161,10 +163,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -175,10 +181,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -187,7 +195,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -195,7 +205,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -203,34 +215,150 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { "packet_filter_rules": [ @@ -248,7 +376,66 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -266,7 +453,66 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -283,29 +529,281 @@ } } ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "192.168.1.0/24" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f14_subnet_to_subnet_overlapping_one_router.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f14_subnet_to_subnet_overlapping_one_router.hujson index 759d2833..04cf4023 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f14_subnet_to_subnet_overlapping_one_router.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f14_subnet_to_subnet_overlapping_one_router.hujson @@ -1,16 +1,14 @@ // ROUTES-f14_subnet_to_subnet_overlapping_one_router // -// ACLs: -// accept: src=['10.0.0.0/8'] dst=['10.33.0.0/16:*'] +// ACL: accept: src=['10.0.0.0/8'] dst=['10.33.0.0/16:*'] // -// Both src and dst overlap on big-router's 10.0.0.0/8 route. -// subnet-router routes 10.33.0.0/16 (subset of src 10.0.0.0/8). -// Tailscale SaaS gives rules to BOTH big-router and subnet-router. -// -// Expected: 2 nodes with rules (big-router, subnet-router) +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f14_subnet_to_subnet_overlapping_one_router", + "timestamp": "2026-04-05T19:26:19Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f14_subnet_to_subnet_overlapping_one_router.json", "full_policy": { "groups": { "group:admins": [ @@ -81,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -152,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -166,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -178,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -186,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -194,25 +204,76 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -233,19 +294,292 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -263,25 +597,260 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f15_subnet_to_subnet_cross_routers.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f15_subnet_to_subnet_cross_routers.hujson index 9578f85a..5a954e85 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f15_subnet_to_subnet_cross_routers.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f15_subnet_to_subnet_cross_routers.hujson @@ -1,17 +1,16 @@ // ROUTES-f15_subnet_to_subnet_cross_routers // -// ACLs: +// ACLs: 2 rules // accept: src=['10.33.0.0/16'] dst=['172.16.0.0/24:*'] // accept: src=['172.16.0.0/24'] dst=['10.33.0.0/16:*'] // -// Cross-router bidirectional. big-router (10.0.0.0/8) overlaps with -// src/dst 10.33.0.0/16. multi-router routes 172.16.0.0/24. -// subnet-router routes 10.33.0.0/16. -// -// Expected: 3 nodes with rules (big-router, multi-router, subnet-router) +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f15_subnet_to_subnet_cross_routers", + "timestamp": "2026-04-05T19:26:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f15_subnet_to_subnet_cross_routers.json", "full_policy": { "groups": { "group:admins": [ @@ -91,7 +90,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -162,10 +163,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -176,10 +181,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -188,7 +195,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -196,7 +205,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -204,25 +215,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -243,16 +277,207 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { "packet_filter_rules": [ @@ -269,8 +494,133 @@ } } ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "172.16.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -288,25 +638,206 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "172.16.0.0/24" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f1_filter_on_destination_not_source.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f1_filter_on_destination_not_source.hujson index 1f5f707d..20e1ff6c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f1_filter_on_destination_not_source.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f1_filter_on_destination_not_source.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f1_filter_on_destination_not_source", + "timestamp": "2026-04-05T19:27:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f1_filter_on_destination_not_source.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +271,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +573,390 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f2_subnet_as_acl_source.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f2_subnet_as_acl_source.hujson index 2d7ee79c..ab0c2a99 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f2_subnet_as_acl_source.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f2_subnet_as_acl_source.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['10.33.0.0/16'] dst=['autogroup:member:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 3 of 12 nodes +// Nodes with filter rules: 5 of 12 { "test_id": "ROUTES-f2_subnet_as_acl_source", + "timestamp": "2026-04-05T19:27:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f2_subnet_as_acl_source.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,55 +204,574 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -264,7 +796,101 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -289,7 +915,101 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -314,7 +1034,101 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f3_wildcard_src_specific_dst.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f3_wildcard_src_specific_dst.hujson index 6b6210b4..edabd583 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f3_wildcard_src_specific_dst.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f3_wildcard_src_specific_dst.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f3_wildcard_src_specific_dst", + "timestamp": "2026-04-05T19:27:44Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f3_wildcard_src_specific_dst.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f4_specific_src_wildcard_dst.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f4_specific_src_wildcard_dst.hujson index c40cd214..b2d3568c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f4_specific_src_wildcard_dst.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f4_specific_src_wildcard_dst.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:router'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-f4_specific_src_wildcard_dst", + "timestamp": "2026-04-05T19:28:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f4_specific_src_wildcard_dst.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,12 +338,14 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -235,18 +357,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -258,18 +723,131 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -281,18 +859,129 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -304,18 +993,129 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -327,18 +1127,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -350,18 +1495,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -373,18 +1863,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -396,18 +1994,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -419,18 +2125,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -442,18 +2256,124 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -465,18 +2385,124 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -488,7 +2514,111 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f5_bidirectional_subnet_access.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f5_bidirectional_subnet_access.hujson index 60de3a15..8bbad9b2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f5_bidirectional_subnet_access.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f5_bidirectional_subnet_access.hujson @@ -1,15 +1,16 @@ // ROUTES-f5_bidirectional_subnet_access // -// ACLs: +// ACLs: 2 rules // accept: src=['autogroup:member'] dst=['10.33.0.0/16:*'] // accept: src=['10.33.0.0/16'] dst=['autogroup:member:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 5 of 12 nodes +// Nodes with filter rules: 7 of 12 { "test_id": "ROUTES-f5_bidirectional_subnet_access", + "timestamp": "2026-04-05T19:28:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f5_bidirectional_subnet_access.json", "full_policy": { "groups": { "group:admins": [ @@ -89,7 +90,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -160,10 +163,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -174,10 +181,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -186,7 +195,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -194,7 +205,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -202,25 +215,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -246,19 +282,482 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + }, + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -281,16 +780,165 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { "packet_filter_rules": [ @@ -315,7 +963,101 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.110.121.96", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::1737:7960", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -340,7 +1082,101 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.103.90.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::9e37:5a52", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -365,7 +1201,101 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.33.0.0/16" + ], + "DstPorts": [ + { + "IP": "100.90.199.68", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::2d01:c747", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f6_filter_srcips_expansion.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f6_filter_srcips_expansion.hujson index fcd7e91f..9385629a 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f6_filter_srcips_expansion.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f6_filter_srcips_expansion.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f6_filter_srcips_expansion", + "timestamp": "2026-04-05T19:28:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f6_filter_srcips_expansion.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +271,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +573,390 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f7_filter_dstports_shows_acl_cidr.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f7_filter_dstports_shows_acl_cidr.hujson index 43094ce8..e1076226 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f7_filter_dstports_shows_acl_cidr.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f7_filter_dstports_shows_acl_cidr.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-f7_filter_dstports_shows_acl_cidr", + "timestamp": "2026-04-05T19:29:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f7_filter_dstports_shows_acl_cidr.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f8_route_enabled_acl_denies.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f8_route_enabled_acl_denies.hujson index 2fc9e97d..c7795f75 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f8_route_enabled_acl_denies.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f8_route_enabled_acl_denies.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['group:empty'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 0 of 12 { "test_id": "ROUTES-f8_route_enabled_acl_denies", + "timestamp": "2026-04-05T19:29:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f8_route_enabled_acl_denies.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,345 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f9_route_disabled_acl_allows.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f9_route_disabled_acl_allows.hujson index b855760f..6b71d032 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-f9_route_disabled_acl_allows.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-f9_route_disabled_acl_allows.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.99.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 1 of 12 nodes +// Nodes with filter rules: 3 of 12 { "test_id": "ROUTES-f9_route_disabled_acl_allows", + "timestamp": "2026-04-05T19:29:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_f9_route_disabled_acl_allows.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,40 +343,927 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.99.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g1_port_restriction_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g1_port_restriction_subnet.hujson index 4dcb21e8..5ef6b675 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g1_port_restriction_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g1_port_restriction_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g1_port_restriction_subnet", + "timestamp": "2026-04-05T19:30:12Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g1_port_restriction_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +271,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +573,390 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g2_port_range_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g2_port_range_subnet.hujson index fc636f90..d08de96d 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g2_port_range_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g2_port_range_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:80-443'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g2_port_range_subnet", + "timestamp": "2026-04-05T19:30:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g2_port_range_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g3_multiple_ports_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g3_multiple_ports_subnet.hujson index 372c735c..a9fb84fe 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g3_multiple_ports_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g3_multiple_ports_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:22,80,443'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g3_multiple_ports_subnet", + "timestamp": "2026-04-05T19:30:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g3_multiple_ports_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -250,19 +357,833 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,10 +1191,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -300,25 +1224,812 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 80, + "Last": 80 + } + }, + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g4_protocol_icmp_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g4_protocol_icmp_subnet.hujson index c3814b0c..e11de741 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g4_protocol_icmp_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g4_protocol_icmp_subnet.hujson @@ -1,13 +1,14 @@ // ROUTES-g4_protocol_icmp_subnet // -// ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] proto=icmp +// ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g4_protocol_icmp_subnet", + "timestamp": "2026-04-05T19:31:16Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g4_protocol_icmp_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -79,7 +80,9 @@ "proto": "icmp" } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -150,10 +153,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -164,10 +171,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -176,7 +185,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -184,7 +195,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -192,25 +205,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -221,10 +325,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -240,19 +347,778 @@ 1 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -260,10 +1126,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,25 +1148,801 @@ 1 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ], + "IPProto": [ + 1 + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g5_protocol_tcp_only.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g5_protocol_tcp_only.hujson index f3fac9ef..cbd7abc1 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g5_protocol_tcp_only.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g5_protocol_tcp_only.hujson @@ -1,13 +1,14 @@ // ROUTES-g5_protocol_tcp_only // -// ACL: accept: src=['*'] dst=['10.33.0.0/16:22'] proto=tcp +// ACL: accept: src=['*'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g5_protocol_tcp_only", + "timestamp": "2026-04-05T19:31:37Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g5_protocol_tcp_only.json", "full_policy": { "groups": { "group:admins": [ @@ -79,7 +80,9 @@ "proto": "tcp" } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -150,10 +153,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -164,10 +171,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -176,7 +185,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -184,7 +195,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -192,25 +205,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -221,10 +325,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -240,19 +347,778 @@ 6 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -260,10 +1126,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,25 +1148,801 @@ 6 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ], + "IPProto": [ + 6 + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g6_protocol_udp_only.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g6_protocol_udp_only.hujson index 3fd9eca8..159129ea 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g6_protocol_udp_only.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g6_protocol_udp_only.hujson @@ -1,13 +1,14 @@ // ROUTES-g6_protocol_udp_only // -// ACL: accept: src=['*'] dst=['10.33.0.0/16:53'] proto=udp +// ACL: accept: src=['*'] dst=['10.33.0.0/16:53'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g6_protocol_udp_only", + "timestamp": "2026-04-05T19:31:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g6_protocol_udp_only.json", "full_policy": { "groups": { "group:admins": [ @@ -79,7 +80,9 @@ "proto": "udp" } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -150,10 +153,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -164,10 +171,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -176,7 +185,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -184,7 +195,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -192,25 +205,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -221,10 +325,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -240,19 +347,778 @@ 17 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -260,10 +1126,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -279,25 +1148,801 @@ 17 ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 53, + "Last": 53 + } + } + ], + "IPProto": [ + 17 + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g7_all_ports_wildcard.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g7_all_ports_wildcard.hujson index 30507dfd..98073c61 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g7_all_ports_wildcard.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g7_all_ports_wildcard.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.33.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g7_all_ports_wildcard", + "timestamp": "2026-04-05T19:32:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g7_all_ports_wildcard.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,48 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +271,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +573,390 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g8_default_ipproto.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g8_default_ipproto.hujson index f52b890a..40b93986 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-g8_default_ipproto.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-g8_default_ipproto.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-g8_default_ipproto", + "timestamp": "2026-04-05T19:32:41Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_g8_default_ipproto.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h10_very_small_prefix.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h10_very_small_prefix.hujson index 3f363d6c..3c6c90df 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h10_very_small_prefix.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h10_very_small_prefix.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.100/32:80'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-h10_very_small_prefix", + "timestamp": "2026-04-05T19:33:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h10_very_small_prefix.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h11_ipv6_small_prefix.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h11_ipv6_small_prefix.hujson index 347b2fce..9ef24944 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h11_ipv6_small_prefix.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h11_ipv6_small_prefix.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['fd00::1/128:443'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-h11_ipv6_small_prefix", + "timestamp": "2026-04-05T19:33:23Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h11_ipv6_small_prefix.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,441 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h1_wildcard_srcips_format.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h1_wildcard_srcips_format.hujson index 87c0cbba..8d3ef9df 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h1_wildcard_srcips_format.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h1_wildcard_srcips_format.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:router:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 3 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-h1_wildcard_srcips_format", + "timestamp": "2026-04-05T19:33:44Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h1_wildcard_srcips_format.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -243,30 +350,385 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.119.241.111", "Ports": { @@ -280,10 +742,835 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -291,10 +1578,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,25 +1604,865 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h2_wildcard_dstports_format.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h2_wildcard_dstports_format.hujson index dc7544c0..e5cc14d2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h2_wildcard_dstports_format.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h2_wildcard_dstports_format.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-h2_wildcard_dstports_format", + "timestamp": "2026-04-05T19:34:05Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h2_wildcard_dstports_format.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -235,7 +355,91 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -258,7 +462,93 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -281,7 +571,91 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -304,7 +678,91 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -327,7 +785,96 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -350,7 +897,93 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -373,7 +1006,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -396,7 +1110,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -419,7 +1214,88 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -442,7 +1318,346 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -465,7 +1680,346 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -488,7 +2042,346 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h3_cgnat_range_expansion.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h3_cgnat_range_expansion.hujson index ff18c303..73ceef01 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h3_cgnat_range_expansion.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h3_cgnat_range_expansion.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:router:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 3 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-h3_cgnat_range_expansion", + "timestamp": "2026-04-05T19:34:27Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h3_cgnat_range_expansion.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -243,30 +350,385 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.119.241.111", "Ports": { @@ -280,10 +742,835 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -291,10 +1578,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,25 +1604,865 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h4_ipv6_range_in_srcips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h4_ipv6_range_in_srcips.hujson index 2a29e30d..83038bb3 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h4_ipv6_range_in_srcips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h4_ipv6_range_in_srcips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-h4_ipv6_range_in_srcips", + "timestamp": "2026-04-05T19:34:48Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h4_ipv6_range_in_srcips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h5_subnet_overlaps_cgnat.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h5_subnet_overlaps_cgnat.hujson index 33cd8feb..46ee4f6b 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h5_subnet_overlaps_cgnat.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h5_subnet_overlaps_cgnat.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.64.0.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-h5_subnet_overlaps_cgnat", + "timestamp": "2026-04-05T19:35:09Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h5_subnet_overlaps_cgnat.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,441 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.64.0.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h6_loopback_routes_not_distributed.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h6_loopback_routes_not_distributed.hujson index 7c3ed859..ca15c0a0 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h6_loopback_routes_not_distributed.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h6_loopback_routes_not_distributed.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['127.0.0.1/32:*'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-h6_loopback_routes_not_distributed", + "timestamp": "2026-04-05T19:35:30Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h6_loopback_routes_not_distributed.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,2009 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "127.0.0.1", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "127.0.0.1", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "127.0.0.1", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "127.0.0.1", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h7_two_nodes_same_subnet.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h7_two_nodes_same_subnet.hujson index a1056410..63846643 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h7_two_nodes_same_subnet.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h7_two_nodes_same_subnet.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-h7_two_nodes_same_subnet", + "timestamp": "2026-04-05T19:35:51Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h7_two_nodes_same_subnet.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h8_cgnat_overlap_blocked.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h8_cgnat_overlap_blocked.hujson index b5a0fcef..26a72689 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h8_cgnat_overlap_blocked.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h8_cgnat_overlap_blocked.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['100.100.0.0/16:*'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-h8_cgnat_overlap_blocked", + "timestamp": "2026-04-05T19:36:13Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h8_cgnat_overlap_blocked.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,441 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.100.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.100.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.100.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.100.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h9_large_prefix_works.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h9_large_prefix_works.hujson index d0e273d4..f248be55 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-h9_large_prefix_works.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-h9_large_prefix_works.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['10.0.0.0/8:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-h9_large_prefix_works", + "timestamp": "2026-04-05T19:36:34Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_h9_large_prefix_works.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,76 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] } } }, @@ -235,19 +299,286 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { "packet_filter_rules": [ @@ -270,25 +601,498 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i1_ipv6_subnet_route.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i1_ipv6_subnet_route.hujson index 7a47de43..af6dd562 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i1_ipv6_subnet_route.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i1_ipv6_subnet_route.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-i1_ipv6_subnet_route", + "timestamp": "2026-04-05T19:36:55Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i1_ipv6_subnet_route.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i2_ipv6_exit_route.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i2_ipv6_exit_route.hujson index 216a3553..2210d09f 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i2_ipv6_exit_route.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i2_ipv6_exit_route.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-i2_ipv6_exit_route", + "timestamp": "2026-04-05T19:37:17Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i2_ipv6_exit_route.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i3_ipv6_in_wildcard_srcips.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i3_ipv6_in_wildcard_srcips.hujson index d48ec4f6..1d761094 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i3_ipv6_in_wildcard_srcips.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i3_ipv6_in_wildcard_srcips.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:router:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 3 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-i3_ipv6_in_wildcard_srcips", + "timestamp": "2026-04-05T19:37:38Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i3_ipv6_in_wildcard_srcips.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -243,30 +350,385 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, { "IP": "100.119.241.111", "Ports": { @@ -280,10 +742,835 @@ "First": 22, "Last": 22 } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -291,10 +1578,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -314,25 +1604,865 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 22, + "Last": 22 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i4_ipv6_specific_acl.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i4_ipv6_specific_acl.hujson index 7c880ff7..a822f01f 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i4_ipv6_specific_acl.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i4_ipv6_specific_acl.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['fd00:1::/64:443'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 3 of 12 { "test_id": "ROUTES-i4_ipv6_specific_acl", + "timestamp": "2026-04-05T19:37:59Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i4_ipv6_specific_acl.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,1066 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i5_ipv6_parent_child_routes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i5_ipv6_parent_child_routes.hujson index 8fe17d66..4e51823d 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i5_ipv6_parent_child_routes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i5_ipv6_parent_child_routes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['fd00:1:2::/80:*'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-i5_ipv6_parent_child_routes", + "timestamp": "2026-04-05T19:38:20Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i5_ipv6_parent_child_routes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,425 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1:2::/80", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1:2::/80", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1:2::/80", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "fd00:1:2::/80", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i6_dual_stack_node.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i6_dual_stack_node.hujson index 0ee077bd..1a389ef2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i6_dual_stack_node.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i6_dual_stack_node.hujson @@ -1,15 +1,16 @@ // ROUTES-i6_dual_stack_node // -// ACLs: +// ACLs: 2 rules // accept: src=['*'] dst=['10.33.0.0/16:*'] // accept: src=['*'] dst=['fd00:1::/64:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-i6_dual_stack_node", + "timestamp": "2026-04-05T19:38:42Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i6_dual_stack_node.json", "full_policy": { "groups": { "group:admins": [ @@ -89,7 +90,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -160,10 +163,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -174,10 +181,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -186,7 +195,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -194,7 +205,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -202,25 +215,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -231,10 +335,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -247,19 +354,803 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -267,10 +1158,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -280,28 +1174,833 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i7_ipv6_exit_coverage.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i7_ipv6_exit_coverage.hujson index 047ac050..ad7ae801 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i7_ipv6_exit_coverage.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i7_ipv6_exit_coverage.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['2001:db8::/32:443'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-i7_ipv6_exit_coverage", + "timestamp": "2026-04-05T19:39:02Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_i7_ipv6_exit_coverage.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,2009 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::/32", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::/32", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::/32", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::/32", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i8_ipv6_subnet_route_wildcard.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i8_ipv6_subnet_route_wildcard.hujson new file mode 100644 index 00000000..a73830d2 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i8_ipv6_subnet_route_wildcard.hujson @@ -0,0 +1,4791 @@ +// ROUTES-i8_ipv6_subnet_route_wildcard +// +// ACL: accept: src=['*'] dst=['*:*'] +// +// Nodes with filter rules: 12 of 12 +{ + "test_id": "ROUTES-i8_ipv6_subnet_route_wildcard", + "timestamp": "2026-04-05T19:39:24Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_i8_ipv6_subnet_route_wildcard.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "fd00:1::/64": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "*:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-i9_ipv6_subnet_targeted_acl.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i9_ipv6_subnet_targeted_acl.hujson new file mode 100644 index 00000000..fc0f982c --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-i9_ipv6_subnet_targeted_acl.hujson @@ -0,0 +1,1272 @@ +// ROUTES-i9_ipv6_subnet_targeted_acl +// +// ACL: accept: src=['*'] dst=['fd00:1::/64:*'] +// +// Nodes with filter rules: 3 of 12 +{ + "test_id": "ROUTES-i9_ipv6_subnet_targeted_acl", + "timestamp": "2026-04-05T19:39:45Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_i9_ipv6_subnet_targeted_acl.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.0.0.0/8": [ + "tag:router" + ], + "fd00:1::/64": [ + "tag:router" + ], + "172.16.0.0/12": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "fd00:1::/64:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd00:1::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o10_acl_dest_covered_by_multiple.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o10_acl_dest_covered_by_multiple.hujson index 56d06655..c2c938ba 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o10_acl_dest_covered_by_multiple.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o10_acl_dest_covered_by_multiple.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o10_acl_dest_covered_by_multiple", + "timestamp": "2026-04-05T19:40:07Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o10_acl_dest_covered_by_multiple.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o11_acl_dest_not_covered.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o11_acl_dest_not_covered.hujson index d3a23bf9..26e3246c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o11_acl_dest_not_covered.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o11_acl_dest_not_covered.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.99.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-o11_acl_dest_not_covered", + "timestamp": "2026-04-05T19:40:28Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o11_acl_dest_not_covered.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,441 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.99.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.99.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.99.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.99.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o12_filter_dest_is_acl_cidr.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o12_filter_dest_is_acl_cidr.hujson index 9c625454..d0f0ed6f 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o12_filter_dest_is_acl_cidr.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o12_filter_dest_is_acl_cidr.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o12_filter_dest_is_acl_cidr", + "timestamp": "2026-04-05T19:40:49Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o12_filter_dest_is_acl_cidr.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o1_overlapping_routes_not_merged.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o1_overlapping_routes_not_merged.hujson index ae068c87..2f87e97b 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o1_overlapping_routes_not_merged.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o1_overlapping_routes_not_merged.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-o1_overlapping_routes_not_merged", + "timestamp": "2026-04-05T19:41:10Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o1_overlapping_routes_not_merged.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +340,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,7 +359,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -244,10 +710,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -260,7 +729,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -268,10 +1083,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -284,7 +1102,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -292,10 +1453,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -308,7 +1472,353 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { "packet_filter_rules": [ @@ -316,10 +1826,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -332,7 +1845,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -340,10 +2198,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -356,7 +2217,352 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -364,10 +2570,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -380,7 +2589,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -388,10 +2940,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -404,7 +2959,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -412,10 +3310,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -428,7 +3329,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -436,10 +3680,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -452,7 +3699,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -460,10 +4050,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -476,7 +4069,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -484,10 +4420,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -500,7 +4439,350 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o2_ha_routers_both_get_filter.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o2_ha_routers_both_get_filter.hujson index 81b86b97..9ea1d123 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o2_ha_routers_both_get_filter.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o2_ha_routers_both_get_filter.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o2_ha_routers_both_get_filter", + "timestamp": "2026-04-05T19:41:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o2_ha_routers_both_get_filter.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,291 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +496,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -242,7 +515,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -250,10 +856,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -266,31 +875,862 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o3_parent_child_different_nodes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o3_parent_child_different_nodes.hujson index 8eb321c2..58e3935b 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o3_parent_child_different_nodes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o3_parent_child_different_nodes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o3_parent_child_different_nodes", + "timestamp": "2026-04-05T19:41:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o3_parent_child_different_nodes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o4_three_way_hierarchy.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o4_three_way_hierarchy.hujson index 2c1d8ed5..4735c620 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o4_three_way_hierarchy.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o4_three_way_hierarchy.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.128/25:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o4_three_way_hierarchy", + "timestamp": "2026-04-05T19:42:14Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o4_three_way_hierarchy.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.128/25", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.128/25", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.128/25", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.128/25", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.128/25", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.128/25", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o5_sibling_routes_with_parent_acl.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o5_sibling_routes_with_parent_acl.hujson index 1142855d..767fc99e 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o5_sibling_routes_with_parent_acl.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o5_sibling_routes_with_parent_acl.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.0.0.0/8:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o5_sibling_routes_with_parent_acl", + "timestamp": "2026-04-05T19:42:35Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o5_sibling_routes_with_parent_acl.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,907 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1251,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1270,1014 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.0.0.0/8", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o6_exit_route_expands_filter_dist.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o6_exit_route_expands_filter_dist.hujson index ef89fe17..6e1e0390 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o6_exit_route_expands_filter_dist.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o6_exit_route_expands_filter_dist.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['8.8.8.0/24:53'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-o6_exit_route_expands_filter_dist", + "timestamp": "2026-04-05T19:42:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o6_exit_route_expands_filter_dist.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,2009 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o7_specific_ip_targeting.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o7_specific_ip_targeting.hujson index 4f8ace45..86f68677 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o7_specific_ip_targeting.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o7_specific_ip_targeting.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.100/32:80'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o7_specific_ip_targeting", + "timestamp": "2026-04-05T19:43:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o7_specific_ip_targeting.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.100", + "Ports": { + "First": 80, + "Last": 80 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o8_same_node_overlapping_routes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o8_same_node_overlapping_routes.hujson index ef35bf53..f1b0e3c9 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o8_same_node_overlapping_routes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o8_same_node_overlapping_routes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o8_same_node_overlapping_routes", + "timestamp": "2026-04-05T19:43:39Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o8_same_node_overlapping_routes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o9_different_nodes_same_route.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o9_different_nodes_same_route.hujson index 9d1fbdc2..f4acc5ef 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-o9_different_nodes_same_route.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-o9_different_nodes_same_route.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['autogroup:member'] dst=['192.168.1.0/24:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-o9_different_nodes_same_route", + "timestamp": "2026-04-05T19:44:00Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_o9_different_nodes_same_route.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { "packet_filter_rules": [ @@ -241,7 +352,91 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -264,31 +459,432 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.103.90.82", + "100.110.121.96", + "100.90.199.68", + "fd7a:115c:a1e0::1737:7960", + "fd7a:115c:a1e0::2d01:c747", + "fd7a:115c:a1e0::9e37:5a52" + ], + "DstPorts": [ + { + "IP": "192.168.1.0/24", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-pa1_partial_route_approval.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-pa1_partial_route_approval.hujson new file mode 100644 index 00000000..3841f0a8 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-pa1_partial_route_approval.hujson @@ -0,0 +1,4785 @@ +// ROUTES-pa1_partial_route_approval +// +// ACL: accept: src=['*'] dst=['*:*'] +// +// Nodes with filter rules: 12 of 12 +{ + "test_id": "ROUTES-pa1_partial_route_approval", + "timestamp": "2026-04-05T19:44:21Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_pa1_partial_route_approval.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.33.0.0/16": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "*:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user-kris": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "user1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-pa2_partial_approval_restricted_acl.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-pa2_partial_approval_restricted_acl.hujson new file mode 100644 index 00000000..df4525d9 --- /dev/null +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-pa2_partial_approval_restricted_acl.hujson @@ -0,0 +1,1920 @@ +// ROUTES-pa2_partial_approval_restricted_acl +// +// ACL: accept: src=['*'] dst=['10.33.0.0/16:*'] +// +// Nodes with filter rules: 4 of 12 +{ + "test_id": "ROUTES-pa2_partial_approval_restricted_acl", + "timestamp": "2026-04-05T19:44:43Z", + "propagation_wait_seconds": 20, + "input": { + "policy_file": "routes_policies/routes_pa2_partial_approval_restricted_acl.json", + "full_policy": { + "groups": { + "group:admins": [ + "kratail2tid@passkey" + ], + "group:developers": [ + "kristoffer@dalby.cc", + "kratail2tid@passkey" + ], + "group:monitors": [ + "monitorpasskeykradalby@passkey" + ], + "group:empty": [] + }, + "tagOwners": { + "tag:server": [ + "kratail2tid@passkey" + ], + "tag:prod": [ + "kratail2tid@passkey" + ], + "tag:client": [ + "kratail2tid@passkey" + ], + "tag:router": [ + "kratail2tid@passkey" + ], + "tag:exit": [ + "kratail2tid@passkey" + ], + "tag:ha": [ + "kratail2tid@passkey" + ] + }, + "hosts": { + "webserver": "100.108.74.26", + "prodbox": "100.103.8.15", + "internal": "10.0.0.0/8", + "subnet24": "192.168.1.0/24" + }, + "autoApprovers": { + "routes": { + "10.33.0.0/16": [ + "tag:router" + ], + "192.168.0.0/16": [ + "tag:ha" + ], + "0.0.0.0/0": [ + "tag:exit" + ], + "::/0": [ + "tag:exit" + ] + } + }, + "acls": [ + { + "action": "accept", + "src": [ + "*" + ], + "dst": [ + "10.33.0.0/16:*" + ] + } + ] + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 + }, + "topology": { + "nodes": { + "big-router": { + "hostname": "big-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.97.174.21", + "ipv6": "fd7a:115c:a1e0::5137:ae15", + "routable_ips": [ + "10.0.0.0/8" + ], + "approved_routes": [ + "10.0.0.0/8" + ] + }, + "exit-node": { + "hostname": "exit-node", + "tags": [ + "tag:exit" + ], + "ipv4": "100.85.66.106", + "ipv6": "fd7a:115c:a1e0::7c37:426a", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "ha-router1": { + "hostname": "ha-router1", + "tags": [ + "tag:ha" + ], + "ipv4": "100.121.186.70", + "ipv6": "fd7a:115c:a1e0::6737:ba46", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "ha-router2": { + "hostname": "ha-router2", + "tags": [ + "tag:ha" + ], + "ipv4": "100.117.104.82", + "ipv6": "fd7a:115c:a1e0::7437:6852", + "routable_ips": [ + "192.168.1.0/24" + ], + "approved_routes": [ + "192.168.1.0/24" + ] + }, + "multi-router": { + "hostname": "multi-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.119.241.111", + "ipv6": "fd7a:115c:a1e0::3337:f16f", + "routable_ips": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ], + "approved_routes": [ + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ] + }, + "subnet-router": { + "hostname": "subnet-router", + "tags": [ + "tag:router" + ], + "ipv4": "100.92.142.61", + "ipv6": "fd7a:115c:a1e0::3e37:8e3d", + "routable_ips": [ + "10.33.0.0/16", + "fd00:1::/64" + ], + "approved_routes": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + }, + "tagged-client": { + "hostname": "tagged-client", + "tags": [ + "tag:client" + ], + "ipv4": "100.83.200.69", + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-prod": { + "hostname": "tagged-prod", + "tags": [ + "tag:prod" + ], + "ipv4": "100.103.8.15", + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] + }, + "tagged-server": { + "hostname": "tagged-server", + "tags": [ + "tag:server" + ], + "ipv4": "100.108.74.26", + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] + }, + "user-kris": { + "hostname": "user-kris", + "tags": [], + "ipv4": "100.110.121.96", + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] + }, + "user-mon": { + "hostname": "user-mon", + "tags": [], + "ipv4": "100.103.90.82", + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] + }, + "user1": { + "hostname": "user1", + "tags": [], + "ipv4": "100.90.199.68", + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] + } + } + }, + "captures": { + "big-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "exit-node": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "tagged-client": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "tagged-prod": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "tagged-server": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-kris": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user-mon": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "user1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + } + } +} diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r1_exit_covers_external_dest.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r1_exit_covers_external_dest.hujson index 4f1f2b70..6659d67e 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r1_exit_covers_external_dest.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r1_exit_covers_external_dest.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['8.8.8.0/24:53'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-r1_exit_covers_external_dest", + "timestamp": "2026-04-05T19:45:04Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r1_exit_covers_external_dest.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,2009 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "8.8.8.0/24", + "Ports": { + "First": 53, + "Last": 53 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r2_parent_route_covers_child_dest.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r2_parent_route_covers_child_dest.hujson index b655697c..0263880e 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r2_parent_route_covers_child_dest.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r2_parent_route_covers_child_dest.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-r2_parent_route_covers_child_dest", + "timestamp": "2026-04-05T19:45:25Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r2_parent_route_covers_child_dest.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r3_sibling_routes_no_coverage.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r3_sibling_routes_no_coverage.hujson index 0ba8434e..3f759900 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r3_sibling_routes_no_coverage.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r3_sibling_routes_no_coverage.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.34.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 1 of 12 nodes +// Nodes with filter rules: 3 of 12 { "test_id": "ROUTES-r3_sibling_routes_no_coverage", + "timestamp": "2026-04-05T19:45:46Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r3_sibling_routes_no_coverage.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,40 +343,927 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.34.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.34.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.34.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.34.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.34.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r4_exact_match_route.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r4_exact_match_route.hujson index 1d8ca12b..e6a8715c 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r4_exact_match_route.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r4_exact_match_route.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-r4_exact_match_route", + "timestamp": "2026-04-05T19:46:08Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r4_exact_match_route.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r5_route_coverage_check_logic.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r5_route_coverage_check_logic.hujson index e4d443e2..2ff5bdec 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r5_route_coverage_check_logic.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r5_route_coverage_check_logic.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.1.0/24:22'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-r5_route_coverage_check_logic", + "timestamp": "2026-04-05T19:46:29Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r5_route_coverage_check_logic.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -220,10 +324,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -236,19 +343,763 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { "packet_filter_rules": [ @@ -256,10 +1107,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -272,25 +1126,798 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.1.0/24", + "Ports": { + "First": 22, + "Last": 22 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r6_ipv6_route_coverage.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r6_ipv6_route_coverage.hujson index b204769f..18438170 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r6_ipv6_route_coverage.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r6_ipv6_route_coverage.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['fd7a:115c:a1e0::1/128:443'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-r6_ipv6_route_coverage", + "timestamp": "2026-04-05T19:46:50Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r6_ipv6_route_coverage.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,441 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r7_exit_ipv6_coverage.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r7_exit_ipv6_coverage.hujson index 9da253f3..fa593c44 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r7_exit_ipv6_coverage.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r7_exit_ipv6_coverage.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['2001:db8::1/128:443'] // -// Routers: 6 nodes with routes -// -// Expected: No filter rules +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-r7_exit_ipv6_coverage", + "timestamp": "2026-04-05T19:47:11Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r7_exit_ipv6_coverage.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,64 +204,2009 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "ha-router2": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "2001:db8::1", + "Ports": { + "First": 443, + "Last": 443 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r8_mixed_ipv4_ipv6_coverage.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r8_mixed_ipv4_ipv6_coverage.hujson index 5dc08d25..1cbd7132 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-r8_mixed_ipv4_ipv6_coverage.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-r8_mixed_ipv4_ipv6_coverage.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['10.33.0.0/16:*', 'fd7a:115c:a1e0::/64:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-r8_mixed_ipv4_ipv6_coverage", + "timestamp": "2026-04-05T19:47:32Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_r8_mixed_ipv4_ipv6_coverage.json", "full_policy": { "groups": { "group:admins": [ @@ -79,7 +80,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -150,10 +153,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -164,10 +171,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -176,7 +185,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -184,7 +195,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -192,25 +205,116 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -221,10 +325,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -244,7 +351,347 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ @@ -252,106 +699,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "fd7a:115c:a1e0::/64", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "ha-router1": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "172.16.0.0/24", - "192.168.1.0/24", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "fd7a:115c:a1e0::/64", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "ha-router2": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "172.16.0.0/24", - "192.168.1.0/24", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "fd7a:115c:a1e0::/64", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "multi-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "172.16.0.0/24", - "192.168.1.0/24", - "fd7a:115c:a1e0::/48" - ], - "DstPorts": [ - { - "IP": "fd7a:115c:a1e0::/64", - "Ports": { - "First": 0, - "Last": 65535 - } - } - ] - } - ] - }, - "subnet-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "10.0.0.0/8", - "10.33.0.0/16", - "100.115.94.0-100.127.255.255", - "100.64.0.0-100.115.91.255", - "172.16.0.0/24", - "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -371,7 +725,1829 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "ha-router2": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "10.33.0.0/16", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ @@ -379,10 +2555,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -395,7 +2574,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ @@ -403,10 +2915,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -419,7 +2934,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-server": { "packet_filter_rules": [ @@ -427,10 +3275,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -443,7 +3294,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user-kris": { "packet_filter_rules": [ @@ -451,10 +3635,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -467,7 +3654,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ @@ -475,10 +3995,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -491,7 +4014,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "user1": { "packet_filter_rules": [ @@ -499,10 +4355,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -515,7 +4374,340 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "fd7a:115c:a1e0::/64", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t1_tags_resolve_to_ips_not_routes.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t1_tags_resolve_to_ips_not_routes.hujson index 77066471..e110c4a2 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t1_tags_resolve_to_ips_not_routes.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t1_tags_resolve_to_ips_not_routes.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:router'] dst=['tag:router:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 3 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-t1_tags_resolve_to_ips_not_routes", + "timestamp": "2026-04-05T19:47:53Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_t1_tags_resolve_to_ips_not_routes.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,44 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,12 +250,14 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -242,29 +276,144 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, { "IP": "100.119.241.111", "Ports": { @@ -278,21 +427,416 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [] + } }, - "subnet-router": { + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.97.174.21", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::5137:ae15", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "subnet-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -311,25 +855,251 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.92.142.61", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3e37:8e3d", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t2_tag_to_tag_with_exit.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t2_tag_to_tag_with_exit.hujson index 1452f264..14f62e6b 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t2_tag_to_tag_with_exit.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t2_tag_to_tag_with_exit.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:exit'] dst=['tag:exit:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-t2_tag_to_tag_with_exit", + "timestamp": "2026-04-05T19:48:14Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_t2_tag_to_tag_with_exit.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,40 +204,85 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.85.66.106", "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -235,32 +293,12 @@ } }, { - "IP": "fd7a:115c:a1e0::7c37:426a", + "IP": "100.105.127.107", "Ports": { "First": 0, "Last": 65535 } - } - ] - } - ] - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.119.241.111", - "100.85.66.106", - "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::7c37:426a" - ], - "DstPorts": [ + }, { "IP": "100.119.241.111", "Ports": { @@ -274,31 +312,533 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.85.66.106", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::7c37:426a", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t3_tag_src_includes_all_tagged.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t3_tag_src_includes_all_tagged.hujson index c44438bd..e41d7b54 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t3_tag_src_includes_all_tagged.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t3_tag_src_includes_all_tagged.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:router'] dst=['*:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 12 of 12 nodes +// Nodes with filter rules: 12 of 12 { "test_id": "ROUTES-t3_tag_src_includes_all_tagged", + "timestamp": "2026-04-05T19:48:36Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_t3_tag_src_includes_all_tagged.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,25 +204,132 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [ + "0.0.0.0/0", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "::/0" + ] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "approved_routes": [ + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, @@ -218,12 +338,14 @@ "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -235,18 +357,361 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -258,18 +723,131 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -281,18 +859,129 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "ha-router2": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -304,18 +993,129 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "multi-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -327,18 +1127,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "subnet-router": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -350,18 +1495,363 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "0.0.0.0/0", + "10.33.0.0/16", + "::/0" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "tagged-client": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -373,18 +1863,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-prod": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -396,18 +1994,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "tagged-server": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -419,18 +2125,126 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-kris": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -442,18 +2256,124 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user-mon": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -465,18 +2385,124 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "user1": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -488,7 +2514,111 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "*", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t4_tag_dst_includes_all_tagged.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t4_tag_dst_includes_all_tagged.hujson index 2eb67476..a1eb70e7 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t4_tag_dst_includes_all_tagged.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t4_tag_dst_includes_all_tagged.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['*'] dst=['tag:ha:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 4 of 12 { "test_id": "ROUTES-t4_tag_dst_includes_all_tagged", + "timestamp": "2026-04-05T19:48:57Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_t4_tag_dst_includes_all_tagged.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,34 +204,327 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "router-a": { + "hostname": "router-a", + "tags": [ + "tag:router-a" + ], + "ipv4": "100.109.43.124", + "ipv6": "fd7a:115c:a1e0::a537:2b7c", + "routable_ips": [ + "10.44.0.0/16" + ], + "approved_routes": [ + "10.44.0.0/16" + ] + }, + "group-b-client": { + "hostname": "group-b-client", + "tags": [ + "tag:group-b" + ], + "ipv4": "100.77.135.18", + "ipv6": "fd7a:115c:a1e0::4b37:8712", + "routable_ips": [], + "approved_routes": [] + }, + "router-b": { + "hostname": "router-b", + "tags": [ + "tag:router-b" + ], + "ipv4": "100.65.172.123", + "ipv6": "fd7a:115c:a1e0::5a37:ac7c", + "routable_ips": [ + "10.55.0.0/16" + ], + "approved_routes": [ + "10.55.0.0/16" + ] + }, + "exit-b": { + "hostname": "exit-b", + "tags": [ + "tag:exit-b" + ], + "ipv4": "100.116.18.24", + "ipv6": "fd7a:115c:a1e0::ff37:1218", + "routable_ips": [], + "approved_routes": [] + }, + "exit-a": { + "hostname": "exit-a", + "tags": [ + "tag:exit-a" + ], + "ipv4": "100.124.195.93", + "ipv6": "fd7a:115c:a1e0::7837:c35d", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [ + "10.33.0.0/16" + ], + "approved_routes": [ + "10.33.0.0/16" + ] + }, + "group-a-client": { + "hostname": "group-a-client", + "tags": [ + "tag:group-a" + ], + "ipv4": "100.107.162.14", + "ipv6": "fd7a:115c:a1e0::a237:a20e", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "exit-node": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "ha-router1": { "packet_filter_rules": [ @@ -226,10 +532,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -249,7 +558,347 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "ha-router2": { "packet_filter_rules": [ @@ -257,10 +906,13 @@ "SrcIPs": [ "10.0.0.0/8", "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", "100.115.94.0-100.127.255.255", "100.64.0.0-100.115.91.255", "172.16.0.0/24", "192.168.1.0/24", + "fd00:1::/64", "fd7a:115c:a1e0::/48" ], "DstPorts": [ @@ -280,31 +932,887 @@ } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [ + { + "Name": "router-a.tail78f774.ts.net.", + "Addresses": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128" + ], + "AllowedIPs": [ + "100.109.43.124/32", + "fd7a:115c:a1e0::a537:2b7c/128", + "10.44.0.0/16" + ], + "PrimaryRoutes": [ + "10.44.0.0/16" + ], + "Tags": [ + "tag:router-a" + ] + }, + { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:prod" + ] + }, + { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "group-b-client.tail78f774.ts.net.", + "Addresses": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "AllowedIPs": [ + "100.77.135.18/32", + "fd7a:115c:a1e0::4b37:8712/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-b" + ] + }, + { + "Name": "router-b.tail78f774.ts.net.", + "Addresses": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128" + ], + "AllowedIPs": [ + "100.65.172.123/32", + "fd7a:115c:a1e0::5a37:ac7c/128", + "10.55.0.0/16" + ], + "PrimaryRoutes": [ + "10.55.0.0/16" + ], + "Tags": [ + "tag:router-b" + ] + }, + { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:server" + ] + }, + { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "PrimaryRoutes": null, + "Tags": null + }, + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "PrimaryRoutes": [ + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-b.tail78f774.ts.net.", + "Addresses": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "AllowedIPs": [ + "100.116.18.24/32", + "fd7a:115c:a1e0::ff37:1218/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-b" + ] + }, + { + "Name": "exit-a.tail78f774.ts.net.", + "Addresses": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "AllowedIPs": [ + "100.124.195.93/32", + "fd7a:115c:a1e0::7837:c35d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit-a" + ] + }, + { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:client" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24" + ], + "PrimaryRoutes": [ + "172.16.0.0/24" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "group-a-client.tail78f774.ts.net.", + "Addresses": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "AllowedIPs": [ + "100.107.162.14/32", + "fd7a:115c:a1e0::a237:a20e/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:group-a" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "PrimaryRoutes": [ + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "fd00:1::/64" + ], + "PrimaryRoutes": [ + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ] + }, + { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "PrimaryRoutes": null, + "Tags": null + } + ] + } }, "multi-router": { - "packet_filter_rules": null + "packet_filter_rules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "10.0.0.0/8", + "10.33.0.0/16", + "10.44.0.0/16", + "10.55.0.0/16", + "100.115.94.0-100.127.255.255", + "100.64.0.0-100.115.91.255", + "172.16.0.0/24", + "192.168.1.0/24", + "fd00:1::/64", + "fd7a:115c:a1e0::/48" + ], + "DstPorts": [ + { + "IP": "100.117.104.82", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.121.186.70", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::6737:ba46", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7437:6852", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [ + { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + }, + { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:ha" + ] + } + ] + } } } } diff --git a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t5_multi_tag_node_in_both.hujson b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t5_multi_tag_node_in_both.hujson index 8e8c8c0f..d8fe0533 100644 --- a/hscontrol/policy/v2/testdata/routes_results/ROUTES-t5_multi_tag_node_in_both.hujson +++ b/hscontrol/policy/v2/testdata/routes_results/ROUTES-t5_multi_tag_node_in_both.hujson @@ -2,12 +2,13 @@ // // ACL: accept: src=['tag:router'] dst=['tag:exit:*'] // -// Routers: 6 nodes with routes -// -// Expected: Rules on 2 of 12 nodes +// Nodes with filter rules: 2 of 12 { "test_id": "ROUTES-t5_multi_tag_node_in_both", + "timestamp": "2026-04-05T19:49:18Z", + "propagation_wait_seconds": 20, "input": { + "policy_file": "routes_policies/routes_t5_multi_tag_node_in_both.json", "full_policy": { "groups": { "group:admins": [ @@ -78,7 +79,9 @@ ] } ] - } + }, + "api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl", + "api_response_code": 200 }, "topology": { "nodes": { @@ -149,10 +152,14 @@ "ipv4": "100.119.241.111", "ipv6": "fd7a:115c:a1e0::3337:f16f", "routable_ips": [ + "0.0.0.0/0", + "::/0", "172.16.0.0/24" ], "approved_routes": [ - "172.16.0.0/24" + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" ] }, "subnet-router": { @@ -163,10 +170,12 @@ "ipv4": "100.92.142.61", "ipv6": "fd7a:115c:a1e0::3e37:8e3d", "routable_ips": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ], "approved_routes": [ - "10.33.0.0/16" + "10.33.0.0/16", + "fd00:1::/64" ] }, "tagged-client": { @@ -175,7 +184,9 @@ "tag:client" ], "ipv4": "100.83.200.69", - "ipv6": "fd7a:115c:a1e0::c537:c845" + "ipv6": "fd7a:115c:a1e0::c537:c845", + "routable_ips": [], + "approved_routes": [] }, "tagged-prod": { "hostname": "tagged-prod", @@ -183,7 +194,9 @@ "tag:prod" ], "ipv4": "100.103.8.15", - "ipv6": "fd7a:115c:a1e0::5b37:80f" + "ipv6": "fd7a:115c:a1e0::5b37:80f", + "routable_ips": [], + "approved_routes": [] }, "tagged-server": { "hostname": "tagged-server", @@ -191,42 +204,135 @@ "tag:server" ], "ipv4": "100.108.74.26", - "ipv6": "fd7a:115c:a1e0::b901:4a87" + "ipv6": "fd7a:115c:a1e0::b901:4a87", + "routable_ips": [], + "approved_routes": [] }, "user-kris": { "hostname": "user-kris", "tags": [], "ipv4": "100.110.121.96", - "ipv6": "fd7a:115c:a1e0::1737:7960" + "ipv6": "fd7a:115c:a1e0::1737:7960", + "routable_ips": [], + "approved_routes": [] }, "user-mon": { "hostname": "user-mon", "tags": [], "ipv4": "100.103.90.82", - "ipv6": "fd7a:115c:a1e0::9e37:5a52" + "ipv6": "fd7a:115c:a1e0::9e37:5a52", + "routable_ips": [], + "approved_routes": [] }, "user1": { "hostname": "user1", "tags": [], "ipv4": "100.90.199.68", - "ipv6": "fd7a:115c:a1e0::2d01:c747" + "ipv6": "fd7a:115c:a1e0::2d01:c747", + "routable_ips": [], + "approved_routes": [] + }, + "multi-exit-router": { + "hostname": "multi-exit-router", + "tags": [ + "tag:exit", + "tag:router" + ], + "ipv4": "100.105.127.107", + "ipv6": "fd7a:115c:a1e0::ad37:7f6b", + "routable_ips": [], + "approved_routes": [] } } }, "captures": { "big-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128", + "10.0.0.0/8" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.0.0.0/8" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "exit-node": { "packet_filter_rules": [ { "SrcIPs": [ + "100.105.127.107", "100.119.241.111", "100.92.142.61", "100.97.174.21", "fd7a:115c:a1e0::3337:f16f", "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" ], "DstPorts": [ { @@ -237,34 +343,12 @@ } }, { - "IP": "fd7a:115c:a1e0::7c37:426a", + "IP": "100.105.127.107", "Ports": { "First": 0, "Last": 65535 } - } - ] - } - ] - }, - "ha-router1": { - "packet_filter_rules": null - }, - "ha-router2": { - "packet_filter_rules": null - }, - "multi-router": { - "packet_filter_rules": [ - { - "SrcIPs": [ - "100.119.241.111", - "100.92.142.61", - "100.97.174.21", - "fd7a:115c:a1e0::3337:f16f", - "fd7a:115c:a1e0::3e37:8e3d", - "fd7a:115c:a1e0::5137:ae15" - ], - "DstPorts": [ + }, { "IP": "100.119.241.111", "Ports": { @@ -278,31 +362,650 @@ "First": 0, "Last": 65535 } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } } ] } - ] + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } + }, + "ha-router1": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router1.tail78f774.ts.net.", + "Addresses": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128" + ], + "AllowedIPs": [ + "100.121.186.70/32", + "fd7a:115c:a1e0::6737:ba46/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "ha-router2": { + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "ha-router2.tail78f774.ts.net.", + "Addresses": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128" + ], + "AllowedIPs": [ + "100.117.104.82/32", + "fd7a:115c:a1e0::7437:6852/128", + "192.168.1.0/24" + ], + "Tags": [ + "tag:ha" + ], + "Hostinfo": { + "RoutableIPs": [ + "192.168.1.0/24" + ] + } + }, + "Peers": [] + } + }, + "multi-router": { + "packet_filter_rules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "netmap": { + "PacketFilterRules": [ + { + "SrcIPs": [ + "100.105.127.107", + "100.119.241.111", + "100.92.142.61", + "100.97.174.21", + "fd7a:115c:a1e0::3337:f16f", + "fd7a:115c:a1e0::3e37:8e3d", + "fd7a:115c:a1e0::5137:ae15", + "fd7a:115c:a1e0::ad37:7f6b" + ], + "DstPorts": [ + { + "IP": "100.85.66.106", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.105.127.107", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "100.119.241.111", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::3337:f16f", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::7c37:426a", + "Ports": { + "First": 0, + "Last": 65535 + } + }, + { + "IP": "fd7a:115c:a1e0::ad37:7f6b", + "Ports": { + "First": 0, + "Last": 65535 + } + } + ] + } + ], + "SelfNode": { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128", + "172.16.0.0/24", + "0.0.0.0/0", + "::/0" + ], + "Tags": [ + "tag:exit", + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "0.0.0.0/0", + "::/0", + "172.16.0.0/24" + ] + } + }, + "Peers": [ + { + "Name": "big-router.tail78f774.ts.net.", + "Addresses": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "AllowedIPs": [ + "100.97.174.21/32", + "fd7a:115c:a1e0::5137:ae15/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + }, + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:router" + ] + } + ] + } }, "subnet-router": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "subnet-router.tail78f774.ts.net.", + "Addresses": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128" + ], + "AllowedIPs": [ + "100.92.142.61/32", + "fd7a:115c:a1e0::3e37:8e3d/128", + "10.33.0.0/16", + "fd00:1::/64" + ], + "Tags": [ + "tag:router" + ], + "Hostinfo": { + "RoutableIPs": [ + "10.33.0.0/16", + "fd00:1::/64" + ] + } + }, + "Peers": [ + { + "Name": "exit-node.tail78f774.ts.net.", + "Addresses": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "AllowedIPs": [ + "100.85.66.106/32", + "fd7a:115c:a1e0::7c37:426a/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit" + ] + }, + { + "Name": "multi-exit-router.tail78f774.ts.net.", + "Addresses": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128" + ], + "AllowedIPs": [ + "100.105.127.107/32", + "fd7a:115c:a1e0::ad37:7f6b/128", + "10.33.0.0/16" + ], + "PrimaryRoutes": [ + "10.33.0.0/16" + ], + "Tags": [ + "tag:exit", + "tag:router" + ] + }, + { + "Name": "multi-router.tail78f774.ts.net.", + "Addresses": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "AllowedIPs": [ + "100.119.241.111/32", + "fd7a:115c:a1e0::3337:f16f/128" + ], + "PrimaryRoutes": null, + "Tags": [ + "tag:exit", + "tag:router" + ] + } + ] + } }, "tagged-client": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-client.tail78f774.ts.net.", + "Addresses": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "AllowedIPs": [ + "100.83.200.69/32", + "fd7a:115c:a1e0::c537:c845/128" + ], + "Tags": [ + "tag:client" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-prod": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-prod.tail78f774.ts.net.", + "Addresses": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "AllowedIPs": [ + "100.103.8.15/32", + "fd7a:115c:a1e0::5b37:80f/128" + ], + "Tags": [ + "tag:prod" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "tagged-server": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "tagged-server.tail78f774.ts.net.", + "Addresses": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "AllowedIPs": [ + "100.108.74.26/32", + "fd7a:115c:a1e0::b901:4a87/128" + ], + "Tags": [ + "tag:server" + ], + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-kris": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-kris.tail78f774.ts.net.", + "Addresses": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "AllowedIPs": [ + "100.110.121.96/32", + "fd7a:115c:a1e0::1737:7960/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user-mon": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user-mon.tail78f774.ts.net.", + "Addresses": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "AllowedIPs": [ + "100.103.90.82/32", + "fd7a:115c:a1e0::9e37:5a52/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } }, "user1": { - "packet_filter_rules": null + "packet_filter_rules": null, + "netmap": { + "PacketFilterRules": null, + "SelfNode": { + "Name": "user1.tail78f774.ts.net.", + "Addresses": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "AllowedIPs": [ + "100.90.199.68/32", + "fd7a:115c:a1e0::2d01:c747/128" + ], + "Tags": null, + "Hostinfo": { + "RoutableIPs": [] + } + }, + "Peers": [] + } } } }